home *** CD-ROM | disk | FTP | other *** search
/ Revista CD Expert 8 / Revista CD Expert nº 08 CD1.iso / Utilitarios / Programacao / MS-DOS Interrupt List / inter60d / INTERRUP.O < prev    next >
Text File  |  1999-01-03  |  261KB  |  7,173 lines

  1. Interrupt List, part 15 of 18
  2. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999 Ralf Brown
  3. --------*-60---------------------------------
  4. INT 60 - reserved for user interrupt
  5. --------v-60---------------------------------
  6. INT 60 - VIRUS - "Zero Bug" - INSTALLATION CHECK
  7. Desc:    The "Zero Bug" virus hooks this vector.     It considers itself installed
  8.       if offset 103h of the handler's segment contains the bytes "ZE"
  9. SeeAlso: INT 32"VIRUS",INT 44"VIRUS",INT 61"SEMTEX"
  10. --------d-60---------------------------------
  11. INT 60 - Adaptec and OMTI controllers - DRIVE 0 DATA
  12. SeeAlso: INT 41"HARD DISK 0",INT 61"Adaptec",INT 62"Adaptec",INT 63"Adaptec"
  13. SeeAlso: INT 64"Adaptec",INT C0"AMI",#00732 at INT 1A/AX=B102h
  14. Notes:    this vector stores the first four bytes of the parameter table for
  15.       hard disk 0
  16.     these vectors are used by the following Adaptec controllers:
  17.         ACB 2370 A/B/C, ACB 2372 A/B/C, ACB 2333 A/B, 2322B-8, 2322B-16
  18.     these vectors are NOT used by the following Adaptec controllers:
  19.         ACB 2310, ACB 2312, ACB 2320D, ACB 2322D
  20. --------b-60---------------------------------
  21. INT 60 - TI Professional PC - SYSTEM ROM DATA AREA POINTER (NOT A VECTOR!)
  22. Desc:    the low word of this vector contains the segment of the RAM data area
  23.       to be used by the system ROM at F400h:A000h, and the high word
  24.       contains the length of the data area (see #03263)
  25. SeeAlso: INT 61"TI Professional PC",INT 66"TI Professional PC"
  26.  
  27. Format of TI Professional System ROM data area:
  28. Offset    Size    Description    (Table 03263)
  29.  00h    BYTE    port 00h shadow
  30.  01h    BYTE    port 03h shadow
  31.  02h    BYTE    port 04h shadow
  32.  03h    WORD    system configuration word (see #03266)
  33.  05h    BYTE    25ms count
  34.  06h    WORD    offset of timing event 1 (0008h)
  35.  08h    WORD    (event 1) offset of timing event 2 (0010h)
  36.  0Ah    BYTE    (event 1) unused (FFh)
  37.  0Bh    BYTE    (event 1) active flag (bit 7 set if on)
  38.  0Ch    WORD    (event 1) count-down until end of event
  39.  0Eh    WORD    (event 1) event routine (in segment F400h) to call at timeout
  40.  10h    WORD    (event 2) offset of timing event 3 (0018h)
  41.  12h    BYTE    (event 2) unused (FFh)
  42.  13h    BYTE    (event 2) active flag (bit 7 set if on)
  43.  14h    WORD    (event 2) count-down until end of event
  44.  16h    WORD    (event 2) event routine (in segment F400h) to call at timeout
  45.  18h    WORD    (event 3) offset of timing event 3 (0020h)
  46.  1Ah    BYTE    (event 3) unused (FFh)
  47.  1Bh    BYTE    (event 3) active flag (bit 7 set if on)
  48.  1Ch    WORD    (event 3) count-down until end of event
  49.  1Eh    WORD    (event 3) event routine (in segment F400h) to call at timeout
  50.  20h    WORD    (event 4) 0000h - last event
  51.  22h    BYTE    (event 4) unused (FFh)
  52.  23h    BYTE    (event 4) active flag (bit 7 set if on)
  53.  24h    WORD    (event 4) count-down until end of event
  54.  26h    WORD    (event 4) event routine (in segment F400h) to call at timeout
  55.  28h    WORD    offset of start of text display within segment DE00h
  56.  2Ah    WORD    end of display
  57.  2Ch    WORD    current absolute cursor position
  58.  2Eh    WORD    start of current character row
  59.  30h    WORD    current cursor column
  60.  32h    WORD    cursor type and size (see #03264)
  61.  34h    WORD    start of protected status region on screen (0000h = none)
  62.  36h    BYTE    pop flag used by some ROM routines
  63.         00h pop registers before return
  64.         nonzero: do not pop
  65.  37h    BYTE    unused (FFh)
  66.  38h    BYTE    PAUSE flag
  67.         00h off
  68.         FFh on
  69.  39h    BYTE    temp: current attribute while moving characters on screen
  70.  3Ah    WORD    start of keyboard queue (next key at start+2 or 0042h if 0060h)
  71.  3Ch    WORD    end of keyboard queue (next key inserted at end+2 or 0042h)
  72.  3Eh    BYTE    number of characters in buffer
  73.  3Fh    BYTE    keyboard mode flags (see #03265)
  74.  40h    BYTE    Alt-digit-digit-digit accumulator
  75.  41h    BYTE    Alt-digit-digit-digit count of digits (mod 3)
  76.  42h 16 WORDs    keyboard buffer (circular queue)
  77.  62h  8 DWORDs    Drive Interface Table pointers for floppies A:-D: + four others
  78.         (0000h:0000h if pointer not in use)
  79.  82h    BYTE    disk-error retry count (incremented on each disk error)
  80.  83h  2    BYTEs    BIOS scratch space
  81.  85h  8 BYTEs    current cylinder number for drives 0-7
  82.         FFh = unknown
  83.  8Dh    BYTE    BIOS scratch space
  84.  8Eh    BYTE    hard error code for last disk access
  85.         00h operation successful
  86.  8Fh  8 BYTEs    save area for disk DSR parameters
  87.  97h  6 BYTEs    current drive status
  88.  9Dh    BYTE    retry error status
  89.  9Eh    BYTE    BIOS scratch space
  90.  9Fh  7 BYTEs    ???
  91.  A6h  2    WORDs    INT 47 save area for SS,SP
  92.  AAh  2    WORDs    INT 46 save area for SS,SP
  93.  AEh  2    WORDs    INT 43 save area for SS,SP
  94.  B2h  2    WORDs    save area for SS,SP to be restored by common intr. exit routine
  95.  B6h 24 WORDs    stack for INT 47
  96.  E6h 24 WORDs    stack for INT 46
  97. 116h 17 WORDs    stack for INT 43
  98. 13Ah  6 BYTEs    system date and time (hundredths, seconds, minutes, hours, and
  99.           WORD days since 01jan1980)
  100. Note:    timing event 1 is the disk I/O timeout, event 2 is the floppy disk
  101.       motor timeout, event 3 is the floppy disk motor spin-up time, and
  102.       event 4 is used to turn off the speaker after a delay
  103.  
  104. Bitfields for TI Professional PC cursor size and type:
  105. Bit(s)    Description    (Table 03264)
  106.  15    reserved (0)
  107.  14-13    cursor type
  108.     00 nonblinking
  109.     01 off
  110.     10 slow blink
  111.     11 fast blink
  112.  12-8    starting scan line (0-11)
  113.  7-5    reserved (0)
  114.  4-0    ending scan line (0-11)
  115. SeeAlso: #03263
  116.  
  117. Bitfields for TI Professional PC keyboard mode flags:
  118. Bit(s)    Description    (Table 03265)
  119.  7    CapsLock was ON at last keypress
  120.  6-4    reserved (0)
  121.  3    repeat key
  122.  2    Shift was down at last keypress
  123.  1    Alt was down at last keypress
  124.  0    Ctrl was down at last keypress
  125. SeeAlso: #03263
  126.  
  127. Bitfields for TI Professional System Configuration Word:
  128. Bit(s)    Description    (Table 03266)
  129.  0    drive A: installed
  130.  1    drive B: installed
  131.  2    drive C: installed
  132.  3    drive D: installed
  133.  4    drive A: is 80-track
  134.  5    drive A: is double-sided
  135.  6    60-Hz (USA,etc.) system instead of 50-Hz (Europe)
  136.  7    hard disk installed
  137.  8    serial port 1 installed
  138.  9    serial port 2 installed
  139.  10    serial port 3 installed
  140.  11    serial port 4 installed
  141.  14-12    installed graphics planes
  142.     000 none
  143.     001 plane A
  144.     111 planes A, B, and C
  145.  15    clock installed
  146. SeeAlso: #03263
  147. --------b-60---------------------------------
  148. INT 60 - Atari Portfolio - USER INTERFACE FUNCTIONS
  149. Desc:    supplies a number of subfunctions which perform such functions as
  150.       drawing boxes and menus, and provide input line editing
  151. SeeAlso: INT 61/AH=00h"Atari",INT 61"EXTENDED BIOS"
  152. --------V-60---------------------------------
  153. INT 60 - Nabbit v2.0 - (NOT A VECTOR!) - INSTALLATION CHECK
  154. Program: Nabbit is a shareware resident screen data grabber by RSE Inc.
  155. Range:    INT 60 to INT 66, selected by searching for first free vector
  156. Note:    the Nabbit installation check consists of testing whether the
  157.       interrupt vector points at the ASCIZ signature string "iG"
  158.       (69h 47h 00h)
  159. --------V-60---------------------------------
  160. INT 60 - ATI M64VBE.COM - INSTALLATION SIGNATURE
  161. Program: M64VBE is a VESA VBE 2.0 driver TSR for ATI's Mach64 video chip
  162. InstallCheck:    scan for an interrupt with the ASCIZ signature "M64VBE" three
  163.       bytes past the interrupt handler
  164. Range:    INT 60 to INT 66, selected by searching for first free vector
  165. SeeAlso: INT 10/AX=4FDDh"M64VBE",INT 10/AX=4FFFh/BX=364Dh"M64VBE"
  166. --------V-60---------------------------------
  167. INT 60 U - Buffit v3.0 - (NOT A VECTOR!) - INSTALLATION CHECK
  168. Program: Buffit is a shareware scrollback utility by D.T. Hamilton
  169. Range:    INT 60 to INT 6F, selected by searching for first free vector
  170. Notes:    the Buffit installation check consists of testing whether the
  171.       interrupt vector points at the ASCII signature "Buffit  "
  172.     there is a private entry point (see #03267) immediately following the
  173.       signature string, i.e. eight bytes beyond the address pointed at
  174.       by the interrupt vector
  175.  
  176. (Table 03267)
  177. Call Buffit private entry point with:
  178.     AH = function
  179.         00h get information and hotkey state
  180.         01h get information and toggle hotkey state
  181. Return: AH = new hotkey state (00h enabled, 01h disabled)
  182.     AL = hotkey scan code (see #00006)
  183.     BH = hotkey shift states
  184.     BL = ??? (01h)
  185.     CX = segment of resident code
  186.     DH = interrupt number used for signature pointer
  187.     DL = ??? (00h)
  188.     SI = INT 09 handler offset
  189.     DI = INT 21 handler offset
  190. Index:    hotkeys;Buffit
  191. --------r-60---------------------------------
  192. INT 60 - PC-IPC API
  193.     STACK:    DWORD    pointer to parameter block (see #03268)
  194. Return: STACK:    unchanged
  195. Program: PC-IPC is a shareware TSR by Donnelly Software Engineering which
  196.       allows communication between independent programs
  197. Range:    INT 00 to INT FF, selected by commandline switch
  198.  
  199. Format of PC-IPC parameter block:
  200. Offset    Size    Description    (Table 03268)
  201.  00h    WORD    caller's ID
  202.  02h    WORD    to ID
  203.  04h    WORD    command code (see #03269)
  204.  06h    WORD    returned status (see #03270)
  205.  08h    WORD    returned error code (see #03271)
  206.  0Ah    WORD    size of data
  207.  0Ch    DWORD    pointer to data buffer
  208.  
  209. (Table 03269)
  210. Values for PC-IPC command code:
  211.  01h "IPC_CMND_INQUIRE"     inquire current status
  212.     set status field, writes WORD to data buffer containing free
  213.       message space in bytes, and sets the "size" field to the
  214.       number of messages waiting
  215.  02h "IPC_CMND_ENABLE"    reenable PC-IPC
  216.     ignored unless called with the same ID that disabled PC-IPC
  217.  03h "IPC_CMND_DISABLE" disable PC-IPC
  218.  04h "IPC_CMND_INSTALL" reset PC-IPC
  219.  06h "IPC_CMND_RDATA"    read data
  220.     returns first message in data buffer, sets "size" to message length
  221.       and "to ID" field to sender's ID
  222.     if no messages available, bit 4 of status is cleared and "size" is
  223.       set to zero
  224.  07h "IPC_CMND_SDATA"    send data
  225.  08h "IPC_CMND_REQID"    require user ID
  226.     create a new recognized ID and return in "caller's ID" field
  227.  09h "IPC_CMND_DELID"    cancel user ID
  228.     delete caller's ID from pool of recognized IDs
  229.  0Ah "IPC_CMND_RDATAW"    read data, wait if no messages available
  230.  0Bh "IPC_CMND_VERS"    get PC-IPC version
  231.     string representing version returned in data buffer, "size" field
  232.       set to length of string
  233.  
  234. Bitfields for returned status:
  235. Bit(s)    Description    (Table 03270)
  236.  0    unused
  237.  1    IPC enabled
  238.  2    IPC installed
  239.  3    error
  240.  4    message(s) available
  241.  
  242. (Table 03271)
  243. Values for PC-IPC error code:
  244.  00h    no error
  245.  01h    invalid command or parameter
  246.  02h    only process 0 can install/reset IPC
  247.  03h    process can not install/reset IPC
  248.  04h    IPC is not enabled
  249.  05h    process can not disable IPC
  250.  06h    invalid destination process ID
  251.  07h    invalid sending process ID
  252.  08h    invalid data destination
  253.  09h    no more process IDs available
  254.  0Ah    can not relinquish that process ID
  255.  0Bh    message space is full
  256.  0Ch    IPC is not installed
  257. --------R-60---------------------------------
  258. INT 60 - Tangram Arbiter - API
  259. Desc:    Arbiter makes a PC disk look like a slow disk over an SNA link to an
  260.       IBM mainframe
  261. Range:    INT 60h to INT 66h, selected by configuration parameter
  262. Notes:    identified by string "@ARB_API" immediately following a short jump at
  263.       the interrupt handler address
  264. --------N-60---------------------------------
  265. INT 60 - Excelan LAN Workplace for DOS 3.5 - API
  266.     ES:BX -> request packet (see #03272)
  267. Return: request packet updated
  268. InstallCheck:    test for the WORD 4142h ('AB') immediately preceding the
  269.       interrupt handler
  270. Note:    this interrupt is also supported by Beame&Whiteside's BWLWP35 shim,
  271.       which was used in creating this description
  272. BUG:    because BWLWP35 range-checks only the low byte of the function number,
  273.       and has a fencepost error even in that test, functions 000Bh and
  274.       XX01h-XX0Bh (XX nonzero) branch to random locations
  275. SeeAlso: INT 2F/AX=7A40h
  276.  
  277. Format of Excelan request packet:
  278. Offset    Size    Description    (Table 03272)
  279.  00h 12 BYTEs    ???
  280.  0Ch    WORD    (ret) error code (see #03273)
  281.  0Eh    DWORD    -> FAR function for ???
  282.  12h    WORD    function number
  283.         0001h ???
  284.         0002h NOP
  285.         0003h NOP
  286.         0004h NOP
  287.         0005h ???
  288.         0006h get ??? record
  289.         0007h NOP
  290.         0008h reset ???
  291.         0009h NOP
  292.         000Ah set ???
  293.     ???
  294. ---function 01h---
  295.  20h    BYTE    (call) subfunction (32h-3Bh)
  296.         3Bh non-blocking I/O request (will be tested every clock tick)
  297.  21h    BYTE    (ret) error code
  298.         00h successful
  299.         09h invalid connection number
  300.         2Ah bad connection type
  301.         45h ???
  302. ---function 01h, subfunction 32h---
  303.  3Ah    WORD    (call) connection type (01h stream, 02h datagram)
  304. ---function 01h, subfunction 34h---
  305.  26h    WORD    (call) ???
  306.  28h    WORD    (call) ???
  307.  2Ah    WORD    (call) ???
  308. ---function 01h, subfunction 35h---
  309.  1Ah    WORD    (call) connection number???
  310.  26h    WORD    (ret) ???
  311. ---function 01h, subfunction 36h---
  312.  1Ah    WORD    (call) connection number???
  313.  38h    WORD    ???
  314. ---function 01h, subfunction 37h---
  315.  24h    WORD    (ret) ???
  316.  26h    WORD    (ret) ???
  317. ---function 01h, subfunction 38h---
  318.  1Ah    WORD    (call) connection number???
  319. ---function 01h, subfunction 3Ah---
  320.  22h    WORD    (call) ???
  321.         667Eh ???
  322.         667Fh ???
  323.  24h    BYTE    (call 667Eh) ???
  324.  24h    WORD    (return 667Fh) ???
  325. ---function 01h, subfunction 3Bh---
  326.  0Eh    DWORD    (call) -> function to invoke for I/O or 0000h:0000h
  327.         function called with AX = 0000h
  328.                      STACK: DWORD -> request packet
  329.                         WORD 0000h
  330.             should return STACK unchanged
  331.  1Ah    WORD    (call) connection number???
  332.  21h    BYTE    (ret) set to 01h when I/O becomes possible
  333.  22h    BYTE    (call) direction (00h write, 01h read)
  334.  34h    DWORD    (ret) -> next pending request packet
  335. ---function 05h---
  336.  1Eh    WORD    (call) ???
  337.  20h    WORD    (call) ???
  338.  34h    DWORD    (call) -> ???
  339. ---function 06h---
  340.  16h    DWORD    (call) -> buffer for ??? record (see #03274)
  341.  1Ah    WORD    (call) number of bytes to copy
  342.  22h    WORD    (ret) number of bytes transferred
  343. ---function 08h---
  344.  14h    WORD    (ret) ??? (0001h)
  345. ---function 0Ah---
  346.  16h    DWORD    (call) -> WORD ???
  347.  1Ch    WORD    (call) must be 000Ah for BWLWP35
  348.  
  349. (Table 03273)
  350. Values for Excelan error code:
  351.  0000h    successful
  352.  002Dh    invalid function
  353.  0050h    ???
  354.  
  355. Format of ??? record:
  356. Offset    Size    Description    (Table 03274)
  357.  00h    WORD    offset of ???
  358.  02h  4 BYTEs    ???
  359.  06h    DWORD    IP address (big-endian)
  360.  0Ah  6 BYTEs    physical address (big-endian)
  361.     ???
  362. --------N-60---------------------------------
  363. INT 60 - TCPDRV 2.01 - TCP/IP Application Binary Interface (ABI)
  364. Note:    The handler for the interrupt will start with a 2-byte NEAR jump
  365.       instruction, followed by the ASCIZ signature string "TCP DRVR".
  366.     To find the interrupt being used by the driver, an application
  367.       should scan through interrupt vectors 60h to 7Fh until it finds
  368.       one with the "TCP DRVR" string.
  369.     This specification is being proposed by Peter R. Tattam from the
  370.       University of Tasmania.
  371. Index:    installation check;TCPDRV
  372. --------G-60---------------------------------
  373. INT 60 U - INTRSPY/CMDSPY v1.0 only - API
  374. Program: INTRSPY is a script-driven debugger included with the book
  375.       _Undocumented_DOS_.
  376. InstallCheck:    determine that a) the handler is an IRET instruction, and
  377.       b) the signature 0Dh "INTRSPY vN.NN" immediately precedes the handler
  378. Notes:    INTRSPY will hook the first available interrupt in the range 60h-67h.
  379.     If INTRSPY is installed, the DWORD immediately after the IRET stores
  380.       its entry point (see #03275)
  381.     INTRSPY v2.0 (included with the second edition of the book) no longer
  382.       supports this API
  383. Index:    installation check;INTRSPY
  384.  
  385. (Table 03275)
  386. Call INTRSPY v1.0 entry point with:
  387.     AH = function
  388.         00h ???
  389.         01h set current directory (for use in reporting)
  390.         ES:DI -> counted string containing directory name (max 79 char)
  391.         02h set name of script file
  392.         ES:DI -> counted string containing file name (max 79 chars)
  393.         03h set script arguments
  394.         ES:DI -> counted string containing arguments (max 79 chars)
  395.         04h get directory set with function 01h
  396.         ES:DI -> 80-byte buffer for directory name
  397.         05h get name of script file
  398.         ES:DI -> 80-byte buffer for script filename
  399.         06h get script arguments
  400.         ES:DI -> 80-byte buffer for script arguments
  401.         07h get ???
  402.         CL = 00h-15h specifies what to get
  403.         ES:DI -> WORD to be set with desired value on return
  404.         08h get ???
  405.         ES:DI -> WORD to be set with returned value
  406.         09h get ???
  407.         ES:DI -> WORD to be set with returned value
  408.         0Bh store code for interrupt handler???
  409.         ES:DI -> data
  410.         CX = number of bytes
  411.         0Ch ???
  412.         ES:DI -> ???
  413.         0Dh get ???
  414.         ES:DI -> BYTE to be set with returned value
  415.         0Eh set ??? flag
  416.         0Fh clear ??? flag
  417.         10h ???
  418.         Return: AL = 04h or 05h if failed
  419.         11h ???
  420.         Return: AL = 05h if failed
  421.         12h get ???
  422.         ES:DI -> buffer
  423.         Return: CX = number of bytes returned in buffer
  424.         13h ???
  425. Return: AH = 00h
  426.     AL = status
  427.         00h successful
  428.         01h invalid function
  429.         02h ???
  430.         03h ???
  431.         04h ???
  432.         05h ???
  433. --------u-60---------------------------------
  434. INT 60 U - PC/370 v4.2 - ???
  435.     ???
  436. Return: ???
  437. Program: PC/370 is an IBM 370 emulator by Donald S. Higgins
  438. Range:    INT 00 to INT FF, selected by patching the executable
  439. Note:    the documentation includes instructions for patching the system for
  440.       another interrupt
  441. SeeAlso: INT 2F/AX=7F24h,INT DC"PC/370"
  442. --------r-60---------------------------------
  443. INT 60 - JPI TopSPEED Modula-2 v1 - PROCEDURE ENTRY TRAP
  444. SeeAlso: INT 61"JPI"
  445. --------N-60---------------------------------
  446. INT 60 - FTP Packet Driver - PC/TCP Packet Driver Specification
  447. Range:    INT 20 to INT FF
  448. Notes:    The handler for the interrupt will start with a 3-byte jump
  449.       instruction, followed by the ASCIZ string "PKT DRVR" (the
  450.       terminating NUL is significant).
  451.     To find the interrupt being used by the driver, an application should
  452.       scan through interrupt vectors 20h to FFh (60h through 80h for
  453.       v1.09- of the specification) until it finds one with the "PKT DRVR"
  454.       string.
  455.     AH values of 80h to FFh have been reserved for user-defined additions.
  456. --------I-60---------------------------------
  457. INT 60 u - 3270-PC CONTROL PROGRAM - ???
  458. --------b-60----DI0100-----------------------
  459. INT 60 u - HP 95LX System Manager - WAIT FOR EVENT
  460.     DI = 0100h
  461.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  462.         DWORD    pointer to event record (see #03277)
  463. Return: event record filled
  464.     STACK unchanged
  465. Note:    this call will timeout after about 500ms
  466. SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0101h,INT 61"HP 95LX",INT 62"HP 95LX"
  467.  
  468. (Table 03276)
  469. Values for HP 95LX event type:
  470.  00h    no events
  471.  01h    keystroke available
  472.  02h    Ctrl-Break
  473.  03h    reactivation (always follows deactivation event)
  474.  04h    about to deactivate (sleep)
  475.     next get-event call will not return until reactivated
  476.  05h    forced application termination
  477.  06h    1-2-3 bridge service request (only given to 1-2-3)
  478.  07h    request to grow
  479.  08h    request to shrink
  480.  09h    application's alarm expired
  481.  0Ah    daily chance to set an alarm
  482.  0Bh    system date or time has been changed
  483.  
  484. Format of HP 95LX event record:
  485. Offset    Size    Description    (Table 03277)
  486.  00h    WORD    event type (see #03276)
  487.  02h    WORD    ASCII code page 850 translation of keystroke
  488.         or grow/shrink amount in paragraphs or 0000h if error
  489.         or alarm expiration data
  490.  04h    BYTE    scan code from BIOS
  491.  05h    BYTE    shift key states at time keystroke is retrieved
  492.  06h    WORD    LICS translation of keystroke
  493.  08h    BYTE    function key number (1-2-3 only)
  494.  09h    DWORD    pointer to 1-2-3 bridge record (see #03279)
  495.         or pointer to time change structure (see #03278)
  496. Note:    if the System Manager is awaiting the conclusion of a bridge service
  497.       or grow/shrink call and the event type field is set to FFFFh on
  498.       entry, the SysMgr will resume
  499.  
  500. Format of HP 95LX time change structure:
  501. Offset    Size    Description    (Table 03278)
  502.  00h    WORD    old year
  503.  02h    BYTE    old month
  504.  03h    BYTE    old date
  505.  04h    BYTE    old day
  506.  05h    BYTE    old hour
  507.  06h    BYTE    old minute
  508.  07h    BYTE    old second
  509.  08h    BYTE    old hundredth of a second
  510.  09h  9 BYTEs    new time in same format as old time
  511. --------b-60----DI0101-----------------------
  512. INT 60 u - HP 95LX System Manager - CHECK FOR EVENT
  513.     DI = 0101h
  514.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  515.         DWORD pointer to event record (INT 60/DI=0100h)
  516. Return: event record filled
  517.     STACK unchanged
  518. Note:    this call returns immediately if no event is available
  519. SeeAlso: INT 60/DI=0100h
  520. --------b-60----DI0102-----------------------
  521. INT 60 u - HP 95LX System Manager - "SH_STATUS"
  522.     DI = 0102h
  523.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  524. Return: ???
  525.     STACK unchanged
  526. --------b-60----DI0104-----------------------
  527. INT 60 u - HP 95LX System Manager - LOTUS 1-2-3 BRIDGE SERVICES
  528.     DI = 0104h
  529.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  530.         DWORD pointer to bridge record (see #03279)
  531. Return: ???
  532.     STACK unchanged
  533.  
  534. Format of HP 95LX bridge record:
  535. Offset    Size    Description    (Table 03279)
  536.  00h    WORD    function code (see #03280)
  537.  02h    WORD    return code from 1-2-3
  538.  04h 16 BYTEs    ASCII range name
  539.  14h    WORD    start column of range
  540.  16h    WORD    start row of range
  541.  18h    WORD    end column of range
  542.  1Ah    WORD    end row of range
  543.  1Ch    WORD    order in which data is placed in buffer
  544.  1Eh    WORD    buffer size
  545.  20h    WORD    offset within bridge record's segment of buffer for cell data
  546.  
  547. (Table 03280)
  548. Values for HP 95LX function code:
  549.  00h    test
  550.  01h    get range
  551.  02h    "GETRANGE_ADDR"
  552.  03h    "SETRANGE_ADDR"
  553.  04h    "GETRANGE_DATA"
  554.  05h    "SETRANGE_DATA"
  555.  06h    recalculate
  556.  07h    get cursor
  557.  08h    set cursor
  558.  09h    redisplay
  559.  0Ah    cell type
  560.  0Bh    "CALCTYPE"
  561. --------b-60----DI0105-----------------------
  562. INT 60 u - HP 95LX System Manager - FLUSH KEYBOARD BUFFER
  563.     DI = 0105h
  564.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  565. Return: ???
  566.     STACK unchanged
  567. --------b-60----DI0106-----------------------
  568. INT 60 u - HP 95LX System Manager - YIELD CPU
  569.     DI = 0106h
  570.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  571.         DWORD pointer to ???
  572. Return: ???
  573.     STACK unchanged
  574. SeeAlso: INT 15/AX=1000h,INT 2F/AX=1680h
  575. --------b-60----DI0107-----------------------
  576. INT 60 u - HP 95LX System Manager - "NO_FINI" - REFUSE TERMINATION REQUEST
  577.     DI = 0107h
  578.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  579.         DWORD pointer to ???
  580. Return: ???
  581.     STACK unchanged
  582. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  583. --------b-60----DI0200-----------------------
  584. INT 60 u - HP 95LX System Manager - SETUP MENU
  585.     DI = 0200h
  586.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  587.         DWORD    pointer to menu data (see #03281)
  588.         DWORD    pointer to ???
  589.         WORD    number of items on menu???
  590.         WORD    ???
  591.         DWORD    pointer to ???
  592.         WORD    ???
  593.         DWORD    pointer to ???
  594. Return: ???
  595.     STACK unchanged
  596. SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0201h,INT 60/DI=0203h,INT 60/DI=0205h
  597.  
  598. Format of HP 95LX menu data:
  599. Offset    Size    Description    (Table 03281)
  600.  00h 80 BYTEs    first line of menu text
  601.  50h 80 BYTEs    second line of menu text
  602.  A0h 80 BYTEs    third line of menu text
  603.  F0h    WORD    number of keywords
  604.  F2h    WORD    index of currently highlighted keyword or FFFFh
  605.  F4h    WORD    single prompt on top line if nonzero
  606.  F6h 20 BYTEs    which line each of 20 keywords is located on
  607. 10Ah 20 BYTEs    offset of each of 20 keywords within its line
  608. 11Eh 20 BYTEs    length of each of 20 keywords
  609. 132h 20 BYTEs    first letter of each of 20 keywords
  610. 146h 20 WORDs    offsets of long prompts for each of 20 keywords
  611. --------b-60----DI0201-----------------------
  612. INT 60 u - HP 95LX System Manager - DISPLAY OR REDISPLAY MENU
  613.     DI = 0201h
  614.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  615.         DWORD    pointer to menu data (see #03281)
  616. Return: ???
  617.     STACK unchanged
  618. SeeAlso: INT 60/DI=0200h,INT 60/DI=0202h,INT 60/DI=0206h
  619. --------b-60----DI0202-----------------------
  620. INT 60 u - HP 95LX System Manager - "MENU_ON" - ENABLE PROCESSING OF MENU
  621.     DI = 0202h
  622.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  623.         DWORD    pointer to menu data (see #03281)
  624. Return: ???
  625.     STACK unchanged
  626. SeeAlso: INT 60/DI=0200h,INT 60/DI=0201h,INT 60/DI=0203h
  627. --------b-60----DI0203-----------------------
  628. INT 60 u - HP 95LX System Manager - REMOVE MENU
  629.     DI = 0203h
  630.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  631.         DWORD    pointer to menu data (see #03281)
  632. Return: ???
  633.     STACK unchanged
  634. SeeAlso: INT 60/DI=0201h,INT 60/DI=0202h,INT 60/DI=0204h,INT 60/DI=0208h
  635. --------b-60----DI0204-----------------------
  636. INT 60 u - HP 95LX System Manager - LET SYSTEM MANAGER HANDLE MENU KEYSTROKE
  637.     DI = 0204h
  638.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  639.         DWORD    pointer to menu data (see #03281)
  640.         WORD    keystroke
  641.         DWORD    pointer to WORD to receive selection number
  642. Return: buffer for selection number filled with index of selected menu item or
  643.       FFFFh if no final selection yet
  644.     STACK unchanged
  645. SeeAlso: INT 60/DI=0200h,INT 60/DI=0202h,INT 60/DI=0207h
  646. --------b-60----DI0205-----------------------
  647. INT 60 u - HP 95LX System Manager - INITIALIZE FILE SELECTION MENU
  648.     DI = 0205h
  649.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  650.         DWORD    pointer to file menu structure (see #03282)
  651.         DWORD    pointer to edit record (see #03285 at INT 60/DI=0400h)
  652.         DWORD    pointer to wildcard filespec for initial file list
  653.         WORD    row???
  654.         WORD    column???
  655. Return: ???
  656.     STACK unchanged
  657. SeeAlso: INT 60/DI=0200h,INT 60/DI=0206h,INT 60/DI=0208h
  658.  
  659. Format of HP 95LX file menu structure:
  660. Offset    Size    Description    (Table 03282)
  661.  00h    DWORD    pointer to ASCIZ base directory name
  662.  04h    DWORD    pointer to ASCIZ file pattern (wildcard filespec)
  663.  08h    DWORD    pointer to file list workspace, at least 1024 bytes (see #03283)
  664.  0Ch    WORD    size of file list workspace in bytes
  665.  0Eh    WORD    starting row (-3 is topmost, 0 is first non-"reserved" line)
  666.  10h    WORD    starting column
  667.  12h    WORD    number of lines
  668.  14h    WORD    number of columns
  669.  16h    WORD    number of files displayed on each line
  670. ---the remaining fields are initialized by the System Manager---
  671.  18h    WORD    0000h if first edit character, else multiline
  672.  1Ah    WORD    number of files in file list
  673.  1Ch    WORD    max files workspace has room for
  674.  1Eh    WORD    file at top of list
  675.  20h    WORD    index of file to highlight
  676.  22h    WORD    index of file to unhighlight
  677.  24h    WORD    current focus (01h FMENU, 02h EDIT)
  678.  
  679. Format of HP 95LX file list workspace entry:
  680. Offset    Size    Description    (Table 03283)
  681.  00h    BYTE    file attributes
  682.  01h    WORD    file time (see #01665 at INT 21/AX=5700h)
  683.  03h    WORD    file date (see #01666 at INT 21/AX=5700h)
  684.  05h    DWORD    file size
  685.  09h 13 BYTEs    ASCIZ filename
  686. --------b-60----DI0206-----------------------
  687. INT 60 u - HP 95LX System Manager - DISPLAY/REDISPLAY FILE SELECTION MENU
  688.     DI = 0206h
  689.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  690.         DWORD    pointer to file menu structure (see #03282)
  691.         DWORD    pointer to edit record (see #03285 at INT 60/DI=0400h)
  692. Return: ???
  693.     STACK unchanged
  694. SeeAlso: INT 60/DI=0205h
  695. --------b-60----DI0207-----------------------
  696. INT 60 u - HP 95LX System Manager - LET SYSMGR PROCESS FILE SEL MENU KEYSTROKE
  697.     DI = 0207h
  698.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  699.         DWORD    pointer to file menu structure (see #03282)
  700.         DWORD    pointer to edit record (see #03285 at INT 60/DI=0400h)
  701.         WORD    keystroke
  702. Return: AX = status (see #03284)
  703.     STACK unchanged
  704. SeeAlso: INT 60/DI=0205h,INT 60/DI=0208h
  705.  
  706. (Table 03284)
  707. Values for HP 95LX System Manager status:
  708.  0000h    keystroke processed, call INT 60/DI=0206h to refresh menu
  709.  0001h    redisplay application area before refreshing menu
  710.  0002h    user confirmed selection, filename is in edit record's buffer
  711.  0003h    user aborted menu
  712.  FFFBh    bad filename
  713.  FFFCh    bad directory
  714.  FFFDh    bad drive
  715.  FFFEh    unknown keystroke
  716.  FFFFh    keystroke known but invalid in current context
  717. --------b-60----DI0208-----------------------
  718. INT 60 u - HP 95LX System Manager - REMOVE FILE SELECTION MENU
  719.     DI = 0208h
  720.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  721.         DWORD    pointer to file menu structure (see #03282)
  722.         DWORD    pointer to edit record (see #03285 at INT 60/DI=0400h)
  723. Return: ???
  724.     STACK unchanged
  725. SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0205h,INT 60/DI=0206h
  726. --------b-60----DI0300-----------------------
  727. INT 60 u - HP 95LX System Manager - DISPLAY STRING
  728.     DI = 0300h
  729.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  730.         WORD    starting row (-3 is topmost, 0 is first user line)
  731.         WORD    starting column
  732.         DWORD    pointer to string
  733.         WORD    length of string
  734.         WORD    display style: 0000h normal, 0001h reverse video
  735.         WORD    "OSTYLE"
  736. Return: ???
  737.     STACK unchanged
  738. SeeAlso: INT 60/DI=0F03h,INT 60/DI=1005h
  739. --------b-60----DI0301-----------------------
  740. INT 60 u - HP 95LX System Manager - CLEAR PORTION OF SCREEN
  741.     DI = 0301h
  742.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  743.         WORD    starting row (-3 is topmost, 0 is first user line)
  744.         WORD    starting column
  745.         WORD    number of rows
  746.         WORD    number of columns
  747. Return: ???
  748.     STACK unchanged
  749. SeeAlso: INT 60/DI=0302h,INT 60/DI=1005h
  750. --------b-60----DI0302-----------------------
  751. INT 60 u - HP 95LX System Manager - SCROLL PORTION OF SCREEN
  752.     DI = 0302h
  753.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  754.         WORD    starting row???
  755.         WORD    starting column???
  756.         WORD    height of scroll region???
  757.         WORD    width of scroll region???
  758.         WORD    number of lines to scroll region???
  759. Return: ???
  760.     STACK unchanged
  761. SeeAlso: INT 60/DI=0301h
  762. --------b-60----DI0303-----------------------
  763. INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_XCHG"
  764.     DI = 0303h
  765.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  766.         WORD    ???
  767.         WORD    ???
  768.         WORD    ???
  769.         WORD    ???
  770.         DWORD    pointer to ???
  771. Return: ???
  772.     STACK unchanged
  773. --------b-60----DI0304-----------------------
  774. INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_CHRATTR"
  775.     DI = 0304h
  776.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  777.         DWORD    pointer to ???
  778.         WORD    ???
  779. Return: ???
  780.     STACK unchanged
  781. --------b-60----DI0305-----------------------
  782. INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_CHRRVRT"
  783.     DI = 0305h
  784.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  785.         WORD    ???
  786.         WORD    ???
  787.         DWORD    pointer to ???
  788.         WORD    ???
  789. Return: ???
  790.     STACK unchanged
  791. --------b-60----DI0307-----------------------
  792. INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_CHRINV"
  793.     DI = 0307h
  794.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  795.         WORD    ???
  796.         WORD    ???
  797.         WORD    ???
  798. Return: ???
  799.     STACK unchanged
  800. --------b-60----DI0308-----------------------
  801. INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_ROWS_COLS"
  802.     DI = 0308h
  803.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  804. Return: ???
  805.     STACK unchanged
  806. --------b-60----DI0309-----------------------
  807. INT 60 u - HP 95LX System Manager - SET SCREEN (VIDEO???) MODE
  808.     DI = 0309h
  809.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  810.         WORD    new mode
  811. Return: ???
  812.     STACK unchanged
  813. --------b-60----DI030A-----------------------
  814. INT 60 u - HP 95LX System Manager - GET SCREEN (VIDEO???) MODE
  815.     DI = 030Ah
  816.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  817. Return: ???
  818.     STACK unchanged
  819. --------b-60----DI030B-----------------------
  820. INT 60 u - HP 95LX System Manager - SET CURSOR POSITION
  821.     DI = 030Bh
  822.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  823.         WORD    row (-3 is topmost, 0 is first non-reserved line)
  824.         WORD    column
  825. Return: ???
  826.     STACK unchanged
  827. Note:    cursor is hidden if the specified position is not on the physical
  828.       display
  829. SeeAlso: INT 10/AH=02h,INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  830. --------b-60----DI0400-----------------------
  831. INT 60 u - HP 95LX System Manager - "EDIT_INIT"
  832.     DI = 0400h
  833.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  834.         DWORD    pointer to edit record (see #03285)
  835.         DWORD    pointer to string to be edited
  836.         WORD    initial length of string being edited
  837.         WORD    maximum length of edited string
  838.         WORD    row of edit field
  839.         WORD    leftmost column of edit field
  840. Return: ???
  841.     STACK unchanged
  842.  
  843. Format of HP 95LX edit record:
  844. Offset    Size    Description    (Table 03285)
  845.  00h    WORD    current length of edit buffer
  846.  02h    BYTE    flag for special processing on first character
  847.  03h    BYTE    flags
  848.         bit 0: tab handling
  849.  04h    WORD    editing in prompt window?
  850.  06h    DWORD    pointer to top line of prompt window message
  851.  0Ah    WORD    length of top line of prompt
  852.  0Ch    DWORD    pointer to second line of prompt window message
  853.  10h    WORD    length of second line of prompt
  854.  12h 80 BYTEs    workspace for editing
  855.  62h  2 WORDs    line array needed for multi-line editing
  856.  66h 36 BYTEs    multi-line edit record (see #03286)
  857.  8Ah    WORD    displayable columns
  858.  
  859. Format of HP 95LX multi-line edit record:
  860. Offset    Size    Description    (Table 03286)
  861.  00h    DWORD    pointer to user-supplied edit buffer
  862.  04h    WORD    length of edit buffer
  863.  06h    WORD    current cursor position
  864.  08h    WORD    starting row of edit area (-3 is topmost, 0 is first user line)
  865.  0Ah    WORD    starting column of edit area
  866.  0Ch    WORD    height of edit area
  867.  0Eh    WORD    width of edit area
  868.  10h    WORD    current top row (-3 is topmost, 0 is first user line)
  869.  12h    WORD    number of rows displayable
  870.  14h    BYTE    cursor column
  871.  15h    BYTE    01h if buffer has been modified
  872.  16h    BYTE    first displayable column (ticker fields only)
  873.  17h    BYTE    01h if wordwrap enabled, FFh if ticker field
  874.  18h    DWORD    pointer to array of line starts (at least one bigger than edit
  875.           area is high)
  876.  1Ch    BYTE    currently marking?
  877.  1Dh    BYTE    flag
  878.  1Eh    WORD    offset of mark start
  879.  20h    WORD    offset of mark end (inclusive)
  880.  22h    WORD    displayable columns
  881. --------b-60----DI0401-----------------------
  882. INT 60 u - HP 95LX System Manager - EDIT ON TOP LINE
  883.     DI = 0401h
  884.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  885.         DWORD    pointer to edit record (see #03285)
  886.         DWORD    pointer to string to edit
  887.         WORD    initial length of string being edited
  888.         WORD    maximum length of edited string
  889.         DWORD    pointer to first line of prompt
  890.         WORD    length of first line
  891.         DWORD    pointer to second line of prompt
  892.         WORD    length of second line
  893. Return: ???
  894.     STACK unchanged
  895. --------b-60----DI0402-----------------------
  896. INT 60 u - HP 95LX System Manager - DISPLAY OR REDISPLAY EDIT FIELD
  897.     DI = 0402h
  898.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  899.         DWORD    pointer to edit record (see #03285)
  900. Return: ???
  901.     STACK unchanged
  902. --------b-60----DI0403-----------------------
  903. INT 60 u - HP 95LX System Manager - LET SYSTEM MANAGER PROCESS EDITING KEYSTROK
  904.     DI = 0403h
  905.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  906.         DWORD    pointer to edit record (see #03285)
  907.         WORD    keystroke
  908.         DWORD    pointer to WORD buffer for result code
  909. Return: result code buffer filled with 0001h if editing complete
  910.     STACK unchanged
  911. --------b-60----DI0404-----------------------
  912. INT 60 u - HP 95LX System Manager - "MDIT_INI"
  913.     DI = 0404h
  914.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  915.         DWORD    pointer to ???
  916.         WORD    ???
  917.         WORD    ???
  918.         WORD    ???
  919.         WORD    ???
  920.         DWORD    pointer to ???
  921.         WORD    ???
  922.         WORD    ???
  923.         WORD    ???
  924.         DWORD    pointer to ???
  925. Return: ???
  926.     STACK unchanged
  927. --------b-60----DI0405-----------------------
  928. INT 60 u - HP 95LX System Manager - "MDIT_DIS"
  929.     DI = 0405h
  930.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  931.         DWORD    pointer to ???
  932. Return: ???
  933.     STACK unchanged
  934. --------b-60----DI0406-----------------------
  935. INT 60 u - HP 95LX System Manager - "MDIT_KEY"
  936.     DI = 0406h
  937.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  938.         DWORD    pointer to ???
  939.         WORD    ???
  940. Return: ???
  941.     STACK unchanged
  942. --------b-60----DI0407-----------------------
  943. INT 60 u - HP 95LX System Manager - "MDIT_FIL"
  944.     DI = 0407h
  945.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  946.         DWORD    pointer to ???
  947.         DWORD    pointer to ???
  948. Return: ???
  949.     STACK unchanged
  950. --------b-60----DI0408-----------------------
  951. INT 60 u - HP 95LX System Manager - "MDIT_MARK"
  952.     DI = 0408h
  953.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  954.         DWORD    pointer to ???
  955. Return: ???
  956.     STACK unchanged
  957. --------b-60----DI0409-----------------------
  958. INT 60 u - HP 95LX System Manager - "MDIT_UNMARK"
  959.     DI = 0409h
  960.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  961.         DWORD    pointer to ???
  962. Return: ???
  963.     STACK unchanged
  964. --------b-60----DI040A-----------------------
  965. INT 60 u - HP 95LX System Manager - "MDIT_CUTMARK"
  966.     DI = 040Ah
  967.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  968.         DWORD    pointer to ???
  969. Return: ???
  970.     STACK unchanged
  971. --------b-60----DI040B-----------------------
  972. INT 60 u - HP 95LX System Manager - "MDIT_INS_STR"
  973.     DI = 040Bh
  974.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  975.         DWORD    pointer to ???
  976.         DWORD    pointer to ???
  977.         WORD    ???
  978. Return: ???
  979.     STACK unchanged
  980. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  981. --------b-60----DI0500-----------------------
  982. INT 60 u - HP 95LX System Manager - OPEN FILE
  983.     DI = 0500h
  984.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  985.         DWORD    pointer to file state record (see #03287)
  986.         DWORD    pointer to filename
  987.         WORD    length of filename
  988.         WORD    ???
  989.         WORD    suppress buffering if nonzero
  990. Return: AX = status
  991.     STACK unchanged
  992. SeeAlso: INT 60/DI=0501h,INT 60/DI=0502h,INT 60/DI=0508h
  993.  
  994. Format of HP 95LX file state record:
  995. Offset    Size    Description    (Table 03287)
  996.  00h    WORD    DOS file handle
  997.  02h    WORD    state flags (see #03288)
  998.  04h    DWORD    current DOS physical file offset (FFFFFFFFh if unknown)
  999.  08h    DWORD    DOS file offset of start of buffer
  1000.  0Ch    DWORD    effective file offset as seen by caller
  1001.  10h    WORD    number of bytes in file buffer
  1002. ---buffered I/O only---
  1003.  12h 512 BYTEs    file buffer
  1004.  
  1005. Bitfields for HP 95LX file state flags:
  1006. Bit(s)    Description    (Table 03288)
  1007.  0    buffer contents valid
  1008.  1    buffer is dirty and must be written
  1009.  2    unbuffered I/O
  1010.  3    file is a character device
  1011. SeeAlso: #03287
  1012. --------b-60----DI0501-----------------------
  1013. INT 60 u - HP 95LX System Manager - OPEN FILE IN READ-ONLY MODE
  1014.     DI = 0501h
  1015.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1016.         DWORD    pointer to file state record (see #03287)
  1017.         DWORD    pointer to filename
  1018.         WORD    length of filename
  1019.         WORD    ???
  1020.         WORD    suppress buffering if nonzero
  1021. Return: AX = status
  1022.     STACK unchanged
  1023. SeeAlso: INT 60/DI=0500h
  1024. --------b-60----DI0502-----------------------
  1025. INT 60 u - HP 95LX System Manager - CREATE NEW FILE
  1026.     DI = 0502h
  1027.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1028.         DWORD    pointer to file state record (see #03287)
  1029.         DWORD    pointer to filename
  1030.         WORD    length of filename
  1031.         WORD    ???
  1032.         WORD    suppress buffering if nonzero
  1033. Return: AX = status
  1034.     STACK unchanged
  1035. SeeAlso: INT 60/DI=0500h,INT 60/DI=0503h
  1036. --------b-60----DI0503-----------------------
  1037. INT 60 u - HP 95LX System Manager - CREATE OR TRUNCATE FILE
  1038.     DI = 0503h
  1039.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1040.         DWORD    pointer to file state record (see #03287)
  1041.         DWORD    pointer to filename
  1042.         WORD    length of filename
  1043.         WORD    ???
  1044.         WORD    suppress buffering if nonzero
  1045. Return: AX = status
  1046.     STACK unchanged
  1047. SeeAlso: INT 60/DI=0502h
  1048. --------b-60----DI0504-----------------------
  1049. INT 60 u - HP 95LX System Manager - READ FROM FILE
  1050.     DI = 0504h
  1051.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1052.         DWORD    pointer to file state record (see #03287)
  1053.         DWORD    pointer to data buffer
  1054.         WORD    number of bytes to read
  1055.         DWORD    pointer to WORD in which to return actual bytes read
  1056. Return: ???
  1057.     STACK unchanged
  1058. SeeAlso: INT 60/DI=0505h
  1059. --------b-60----DI0505-----------------------
  1060. INT 60 - HP 95LX System Manager - WRITE TO FILE
  1061.     DI = 0505h
  1062.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1063.         DWORD    pointer to file state record (see #03287)
  1064.         DWORD    pointer to data
  1065.         WORD    length of data
  1066. Return: AX = status
  1067.     STACK unchanged
  1068. SeeAlso: INT 60/DI=0504h
  1069. --------b-60----DI0506-----------------------
  1070. INT 60 u - HP 95LX System Manager - SET FILE POSITION
  1071.     DI = 0506h
  1072.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1073.         DWORD    pointer to file state record (see #03287)
  1074.         2 WORDs    ???
  1075. Return: ???
  1076.     STACK unchanged
  1077. SeeAlso: INT 60/DI=0507h
  1078. --------b-60----DI0507-----------------------
  1079. INT 60 u - HP 95LX System Manager - GET FILE POSITION
  1080.     DI = 0507h "M_TELL"
  1081.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1082.         DWORD    pointer to file state record (see #03287)
  1083.         DWORD    pointer to DWORD buffer for file position???
  1084. Return: ???
  1085.     STACK unchanged
  1086. SeeAlso: INT 60/DI=0506h
  1087. --------b-60----DI0508-----------------------
  1088. INT 60 u - HP 95LX System Manager - CLOSE FILE
  1089.     DI = 0508h
  1090.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1091.         DWORD    pointer to file state record (see #03287)
  1092. Return: ???
  1093.     STACK unchanged
  1094. SeeAlso: INT 60/DI=0500h
  1095. --------b-60----DI0509-----------------------
  1096. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_SETPAT"
  1097.     DI = 0509h
  1098.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1099.         DWORD    pointer to ???
  1100.         DWORD    pointer to ???
  1101.         WORD    ???
  1102.         WORD    ???
  1103. Return: ???
  1104.     STACK unchanged
  1105. --------b-60----DI050A-----------------------
  1106. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_MATCH"
  1107.     DI = 050Ah
  1108.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1109.         DWORD    pointer to ??? (see #03289)
  1110.         DWORD    pointer to ???
  1111. Return: ???
  1112.     STACK unchanged
  1113.  
  1114. Format of HP 95LX pattern match control block:
  1115. Offset    Size    Description    (Table 03289)
  1116.  00h 43 BYTEs    FindFirst data block (see #01626 at INT 21/AH=4Eh)
  1117.  2Bh 80 BYTEs    full path name
  1118.  7Bh    BYTE    offset of last component of filename
  1119.  7Ch    BYTE    DOS function number (4Eh or 4Fh)
  1120. --------b-60----DI050B-----------------------
  1121. INT 60 u - HP 95LX System Manager - IDENTIFY FILENAME REFERENT
  1122.     DI = 050Bh
  1123.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1124.         DWORD    pointer to ???
  1125.         WORD    ???
  1126.         WORD    ???
  1127.         DWORD    pointer to ???
  1128. Return: ??? = result (see #03290)
  1129.     ???
  1130.     STACK unchanged
  1131.  
  1132. (Table 03290)
  1133. Values returned by HP 95LX System Manager:
  1134.  0000h    nonexistent
  1135.  0001h    file
  1136.  0002h    directory
  1137.  0003h    character device
  1138. --------b-60----DI050C-----------------------
  1139. INT 60 u - HP 95LX System Manager - DELETE FILE
  1140.     DI = 050Ch "M_DELETE"
  1141.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1142.         DWORD    pointer to ???
  1143.         WORD    ???
  1144.         WORD    ???
  1145. Return: ???
  1146.     STACK unchanged
  1147. --------b-60----DI050D-----------------------
  1148. INT 60 u - HP 95LX System Manager - RENAME FILE
  1149.     DI = 050Dh
  1150.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1151.         DWORD    pointer to ???
  1152.         WORD    ???
  1153.         WORD    ???
  1154.         DWORD    pointer to ???
  1155.         WORD    ???
  1156.         WORD    ???
  1157. Return: ???
  1158.     STACK unchanged
  1159. --------b-60----DI050E-----------------------
  1160. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_GETDIR"
  1161.     DI = 050Eh
  1162.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1163.         WORD    ???
  1164.         DWORD    pointer to ???
  1165.         DWORD    pointer to ???
  1166. Return: ???
  1167.     STACK unchanged
  1168. --------b-60----DI050F-----------------------
  1169. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_SETDIR"
  1170.     DI = 050Fh
  1171.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1172.         DWORD    pointer to ???
  1173.         WORD    ???
  1174. Return: ???
  1175.     STACK unchanged
  1176. --------b-60----DI0510-----------------------
  1177. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_VOLUME"
  1178.     DI = 0510h
  1179.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1180.         DWORD    pointer to ???
  1181.         DWORD    pointer to ???
  1182. Return: ???
  1183.     STACK unchanged
  1184. --------b-60----DI0511-----------------------
  1185. INT 60 u - HP 95LX System Manager - MAKE A SUBDIRECTORY
  1186.     DI = 0511h
  1187.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1188.         DWORD    pointer to ???
  1189.         WORD    ???
  1190.         WORD    ???
  1191. Return: ???
  1192.     STACK unchanged
  1193. SeeAlso: INT 21/AH=39h,INT 60/DI=0512h
  1194. --------b-60----DI0512-----------------------
  1195. INT 60 u - HP 95LX System Manager - REMOVE A SUBDIRECTORY
  1196.     DI = 0512h
  1197.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1198.         DWORD    pointer to ???
  1199.         WORD    ???
  1200.         WORD    ???
  1201. Return: ???
  1202.     STACK unchanged
  1203. SeeAlso: INT 21/AH=3Ah,INT 60/DI=0511h
  1204. --------b-60----DI0513-----------------------
  1205. INT 60 u - HP 95LX System Manager - GET DEFAULT DRIVE
  1206.     DI = 0513h
  1207.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1208.         DWORD    pointer to ??? buffer for current drive
  1209. Return: ???
  1210.     STACK unchanged
  1211. SeeAlso: INT 21/AH=19h,INT 60/DI=0514h
  1212. --------b-60----DI0514-----------------------
  1213. INT 60 u - HP 95LX System Manager - SET DEFAULT DRIVE
  1214.     DI = 0514h
  1215.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1216.         WORD    new drive
  1217. Return: ???
  1218.     STACK unchanged
  1219. SeeAlso: INT 21/AH=0Eh"DOS 1+",INT 60/DI=0513h
  1220. --------b-60----DI0515-----------------------
  1221. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_FDATE"
  1222.     DI = 0515h
  1223.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1224.         DWORD    pointer to ???
  1225.         DWORD    pointer to ???
  1226. Return: ???
  1227.     STACK unchanged
  1228. --------b-60----DI0516-----------------------
  1229. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_GET_SYSDIR"
  1230.     DI = 0516h
  1231.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1232.         DWORD    pointer to ???
  1233. Return: ???
  1234.     STACK unchanged
  1235. --------b-60----DI0517-----------------------
  1236. INT 60 u - HP 95LX System Manager - GET FILE ATTRIBUTES
  1237.     DI = 0517h
  1238.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1239.         DWORD    pointer to ???
  1240.         WORD    ???
  1241.         WORD    ???
  1242.         DWORD    pointer to ??? buffer for file's attributes???
  1243. Return: ???
  1244.     STACK unchanged
  1245. SeeAlso: INT 21/AX=4300h,INT 60/DI=0518h
  1246. --------b-60----DI0518-----------------------
  1247. INT 60 u - HP 95LX System Manager - SET FILE ATTRIBUTES
  1248.     DI = 0518h
  1249.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1250.         DWORD    pointer to ???
  1251.         WORD    ???
  1252.         WORD    ???
  1253.         WORD    new attributes???
  1254. Return: ???
  1255.     STACK unchanged
  1256. SeeAlso: INT 21/AX=4301h,INT 60/DI=0517h
  1257. --------b-60----DI0519-----------------------
  1258. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_COMMON_OPEN"
  1259.     DI = 0519h
  1260.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1261.         DWORD    pointer to ???
  1262.         DWORD    pointer to ???
  1263.         WORD    ???
  1264.         WORD    ???
  1265.         WORD    ???
  1266.         WORD    ???
  1267.         WORD    ???
  1268. Return: ???
  1269.     STACK unchanged
  1270. --------b-60----DI051A-----------------------
  1271. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_COPYDT"
  1272.     DI = 051Ah
  1273.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1274.         DWORD    pointer to ???
  1275.         DWORD    pointer to ???
  1276. Return: ???
  1277.     STACK unchanged
  1278. --------b-60----DI051B-----------------------
  1279. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_GETFDT"
  1280.     DI = 051Bh
  1281.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1282.         DWORD    pointer to ???
  1283.         DWORD    pointer to ???
  1284. Return: ???
  1285.     STACK unchanged
  1286. --------b-60----DI051C-----------------------
  1287. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_PUTFDT"
  1288.     DI = 051Ch
  1289.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1290.         DWORD    pointer to ???
  1291.         WORD    ???
  1292. Return: ???
  1293.     STACK unchanged
  1294. --------b-60----DI0600-----------------------
  1295. INT 60 u - HP 95LX System Manager - PROCESS INITIALIZING
  1296.     DI = 0600h
  1297.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1298. Return: ???
  1299.     STACK unchanged
  1300. SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0601h,INT 61"HP 95LX"
  1301. --------b-60----DI0601-----------------------
  1302. INT 60 u - HP 95LX System Manager - PROCESS TERMINATION
  1303.     DI = 0601h
  1304.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1305. Return: never
  1306.     STACK unchanged
  1307. SeeAlso: INT 21/AH=4Ch,INT 2F/AX=1122h,INT 60/DI=0600h
  1308. --------b-60----DI0602-----------------------
  1309. INT 60 u - HP 95LX System Manager - "M_LOCK" - PREVENT TASK SWITCHES
  1310.     DI = 0602h
  1311.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1312. Return: ???
  1313.     STACK unchanged
  1314. SeeAlso: INT 15/AX=101Bh,INT 2F/AX=1681h,INT 60/DI=0603h
  1315. --------b-60----DI0603-----------------------
  1316. INT 60 u - HP 95LX System Manager - "M_UNLOCK" - ALLOW TASK SWITCHES
  1317.     DI = 0603h
  1318.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1319. Return: ???
  1320.     STACK unchanged
  1321. SeeAlso: INT 15/AX=101Ch,INT 2F/AX=1682h,INT 60/DI=0602h
  1322. --------b-60----DI0604-----------------------
  1323. INT 60 u - HP 95LX System Manager - "M_SPAWN"
  1324.     DI = 0604h
  1325.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1326.         DWORD    pointer to ???
  1327.         WORD    ???
  1328.         WORD    ???
  1329.         DWORD    pointer to ???
  1330. Return: ???
  1331.     STACK unchanged
  1332. SeeAlso: INT 21/AH=4Bh
  1333. --------b-60----DI0605-----------------------
  1334. INT 60 u - HP 95LX System Manager - "M_APPCOUNT"
  1335.     DI = 0605h
  1336.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1337. Return: ???
  1338.     STACK unchanged
  1339. --------b-60----DI0606-----------------------
  1340. INT 60 u - HP 95LX System Manager - "M_REBOOT"
  1341.     DI = 0606h
  1342.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1343. Return: ???
  1344.     STACK unchanged
  1345. SeeAlso: INT 14/AH=17h"FOSSIL",INT 19
  1346. --------b-60----DI0607-----------------------
  1347. INT 60 u - HP 95LX System Manager - "M_SPAWNARG"
  1348.     DI = 0607h
  1349.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1350.         DWORD    pointer to ???
  1351.         WORD    ???
  1352.         DWORD    pointer to ???
  1353.         WORD    ???
  1354. Return: ???
  1355.     STACK unchanged
  1356. --------b-60----DI0608-----------------------
  1357. INT 60 u - HP 95LX System Manager - "M_REG_APP_NAME"
  1358.     DI = 0608h
  1359.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1360.         DWORD    pointer to ???
  1361. Return: ???
  1362.     STACK unchanged
  1363. --------b-60----DI0609-----------------------
  1364. INT 60 u - HP 95LX System Manager - "M_APP_NAME"
  1365.     DI = 0609h
  1366.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1367.         DWORD    pointer to ???
  1368. Return: DX:AX -> ???
  1369.     STACK unchanged
  1370. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  1371. --------b-60----DI0700-----------------------
  1372. INT 60 u - HP 95LX System Manager - OPEN CLIPBOARD
  1373.     DI = 0700h
  1374.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1375. Return: ??? = error code (see #03291)
  1376.     ???
  1377.     STACK unchanged
  1378. SeeAlso: INT 60/DI=0701h,INT 60/DI=0702h
  1379.  
  1380. (Table 03291)
  1381. Values for HP 95LX error code:
  1382.  0000h    successful
  1383.  FFF8h    transfer request out of bounds
  1384.  FFF9h    no such representation
  1385.  FFFAh    no representation open
  1386.  FFFBh    a representation is already open
  1387.  FFFCh    representation already exists
  1388.  FFFDh    heap allocation failure
  1389.  FFFEh    clipboard not open
  1390.  FFFFh    clipboard access denied
  1391. --------b-60----DI0701-----------------------
  1392. INT 60 u - HP 95LX System Manager - CLOSE CLIPBOARD
  1393.     DI = 0701h
  1394.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1395. Return: ???
  1396.     STACK unchanged
  1397. SeeAlso: INT 60/DI=0700h,INT 60/DI=0702h
  1398. --------b-60----DI0702-----------------------
  1399. INT 60 u - HP 95LX System Manager - RESET CLIPBOARD
  1400.     DI = 0702h
  1401.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1402.         DWORD    pointer to ???
  1403. Return: ???
  1404.     STACK unchanged
  1405. SeeAlso: INT 60/DI=0700h
  1406. --------b-60----DI0704-----------------------
  1407. INT 60 u - HP 95LX System Manager - "M_NEW_REP" - START A NEW REPRESENTATION???
  1408.     DI = 0704h
  1409.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1410.         DWORD    pointer to ???
  1411. Return: ???
  1412.     STACK unchanged
  1413. SeeAlso: INT 60/DI=0705h,INT 60/DI=0706h,INT 60/DI=0707h
  1414. --------b-60----DI0705-----------------------
  1415. INT 60 u - HP 95LX System Manager - CLIPBOARD SERVICE "M_FINI_REP"
  1416.     DI = 0705h
  1417.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1418. Return: ???
  1419.     STACK unchanged
  1420. SeeAlso: INT 60/DI=0704h
  1421. --------b-60----DI0706-----------------------
  1422. INT 60 u - HP 95LX System Manager - CLIPBOARD SERVICE "M_REP_NAME"
  1423.     DI = 0706h
  1424.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1425.         WORD    ???
  1426.         DWORD    pointer to ???
  1427.         DWORD    pointer to ???
  1428. Return: ???
  1429.     STACK unchanged
  1430. SeeAlso: INT 60/DI=0704h,INT 60/DI=0707h
  1431. --------b-60----DI0707-----------------------
  1432. INT 60 u - HP 95LX System Manager - CLIPBOARD SERVICE "M_REP_INDEX"
  1433.     DI = 0707h
  1434.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1435.         DWORD    pointer to ???
  1436.         DWORD    pointer to ???
  1437.         DWORD    pointer to ???
  1438. Return: ???
  1439.     STACK unchanged
  1440. SeeAlso: INT 60/DI=0704h,INT 60/DI=0706h
  1441. --------b-60----DI0708-----------------------
  1442. INT 60 u - HP 95LX System Manager - WRITE TO CLIPBOARD
  1443.     DI = 0708h
  1444.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1445.         DWORD    pointer to data to be written???
  1446.         WORD    length of data???
  1447. Return: ???
  1448.     STACK unchanged
  1449. SeeAlso: INT 60/DI=0709h
  1450. --------b-60----DI0709-----------------------
  1451. INT 60 u - HP 95LX System Manager - READ FROM CLIPBOARD
  1452.     DI = 0709h
  1453.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1454.         WORD    ???
  1455.         WORD    ???
  1456.         DWORD    pointer to buffer for data???
  1457.         WORD    length of buffer???
  1458. Return: ???
  1459.     STACK unchanged
  1460. SeeAlso: INT 60/DI=0708h
  1461. --------b-60----DI0800-----------------------
  1462. INT 60 u - HP 95LX System Manager - BEEP
  1463.     DI = 0800h
  1464.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1465. Return: ???
  1466.     STACK unchanged
  1467. SeeAlso: INT 60/DI=0801h,INT 60/DI=0802h,INT 60/DI=0803h
  1468. --------b-60----DI0801-----------------------
  1469. INT 60 u - HP 95LX System Manager - SOUND SERVICE "M_THUD"
  1470.     DI = 0801h
  1471.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1472. Return: ???
  1473.     STACK unchanged
  1474. SeeAlso: INT 60/DI=0800h,INT 60/DI=0802h,INT 60/DI=0803h
  1475. --------b-60----DI0802-----------------------
  1476. INT 60 u - HP 95LX System Manager - MAKE A SOUND PATTERN
  1477.     DI = 0802h
  1478.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1479.         WORD    pattern number (00h-06h)
  1480. Return: ???
  1481.     STACK unchanged
  1482. SeeAlso: INT 60/DI=0800h,INT 60/DI=0801h,INT 60/DI=0803h
  1483. --------b-60----DI0803-----------------------
  1484. INT 60 u - HP 95LX System Manager - TURN OFF SOUND
  1485.     DI = 0803h
  1486.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1487. Return: ???
  1488.     STACK unchanged
  1489. SeeAlso: INT 60/DI=0800h,INT 60/DI=0801h,INT 60/DI=0802h
  1490. --------b-60----DI0900-----------------------
  1491. INT 60 - HP 95LX System Manager - ALLOCATE REGULAR MEMORY BLOCK
  1492.     DI = 0900h
  1493.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1494.         WORD    size of block in bytes
  1495. Return: AX -> memory block
  1496.     STACK unchanged
  1497. Note:    System Manager-compliant applications are always small-model (64K code,
  1498.       64K data)
  1499. SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0902h,INT 60/DI=0903h
  1500. --------b-60----DI0902-----------------------
  1501. INT 60 u - HP 95LX System Manager - FREE REGULAR MEMORY BLOCK
  1502.     DI = 0902h
  1503.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1504.         WORD    offset of memory block???
  1505. Return: ???
  1506.     STACK unchanged
  1507. Note:    System Manager-compliant applications are always small-model (64K code,
  1508.       64K data)
  1509. SeeAlso: INT 60/DI=0900h,INT 60/DI=0904h
  1510. --------b-60----DI0903-----------------------
  1511. INT 60 u - HP 95LX System Manager - ALLOCATE LARGE MEMORY BLOCK
  1512.     DI = 0903h
  1513.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1514.         WORD    size of block in bytes???
  1515. Return: AX -> memory block???
  1516.     STACK unchanged
  1517. SeeAlso: INT 60/DI=0900h,INT 60/DI=0904h
  1518. --------b-60----DI0904-----------------------
  1519. INT 60 u - HP 95LX System Manager - FREE LARGE MEMORY BLOCK
  1520.     DI = 0904h
  1521.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1522.         WORD    segment of memory block???
  1523. Return: AX -> ???
  1524.     STACK unchanged
  1525. SeeAlso: INT 60/DI=0902h,INT 60/DI=0903h
  1526. --------b-60----DI0B00-----------------------
  1527. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_DTINFO"
  1528.     DI = 0B00h
  1529.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1530.         DWORD    pointer to ???
  1531. Return: ???
  1532.     STACK unchanged
  1533. --------b-60----DI0B01-----------------------
  1534. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GETDTM"
  1535.     DI = 0B01h
  1536.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1537.         DWORD    pointer to ???
  1538. Return: ???
  1539.     STACK unchanged
  1540. --------b-60----DI0B02-----------------------
  1541. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_SETDTM"
  1542.     DI = 0B02h
  1543.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1544.         DWORD    pointer to ???
  1545. Return: ???
  1546.     STACK unchanged
  1547. --------b-60----DI0B03-----------------------
  1548. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_XALARM"
  1549.     DI = 0B03h
  1550.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1551.         WORD    ???
  1552. Return: ???
  1553.     STACK unchanged
  1554. --------b-60----DI0B04-----------------------
  1555. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_ALARM"
  1556.     DI = 0B04h
  1557.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1558.         DWORD    pointer to alarm record??? (see #03292)
  1559.         WORD    ???
  1560. Return: ???
  1561.     STACK unchanged
  1562.  
  1563. Format of HP 95LX alarm record:
  1564. Offset    Size    Description    (Table 03292)
  1565.  00h    BYTE    hour
  1566.  01h    BYTE    minute
  1567.  02h    BYTE    second
  1568.  03h    BYTE    unused padding
  1569.  04h    WORD    rescheduling interval, in seconds
  1570.  06h    BYTE    are seconds significant?
  1571.  07h    BYTE    alarm sound
  1572.  08h 40 BYTEs    message displayed when alarm activates
  1573.  30h    BYTE    task ID of owner
  1574.  31h    BYTE    application's own use for sub-class
  1575.  32h  4 BYTEs    application's own use for private data
  1576. --------b-60----DI0B05-----------------------
  1577. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_START_SW"
  1578.     DI = 0B05h
  1579.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1580.         DWORD    pointer to ???
  1581. Return: ???
  1582.     STACK unchanged
  1583. --------b-60----DI0B06-----------------------
  1584. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GET_SW"
  1585.     DI = 0B06h
  1586.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1587.         DWORD    pointer to ???
  1588.         DWORD    pointer to ???
  1589.         DWORD    pointer to ???
  1590. Return: ???
  1591.     STACK unchanged
  1592. --------b-60----DI0B07-----------------------
  1593. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_STOP_SW"
  1594.     DI = 0B07h
  1595.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1596.         DWORD    pointer to ???
  1597. Return: ???
  1598.     STACK unchanged
  1599. --------b-60----DI0B08-----------------------
  1600. INT 60 u - HP 95LX System Manager - "M_TELLTIME" - DISPLAY TIMESTAMP
  1601.     DI = 0B08h
  1602.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1603.         WORD    timestamp format (see #03293)
  1604.         WORD    row (-3 is topmost, 0 is first non-reserved line)
  1605.         WORD    column
  1606. Return: ???
  1607.     STACK unchanged
  1608.  
  1609. Bitfields for HP 95LX timestamp format:
  1610. Bit(s)    Description    (Table 03293)
  1611.  1-0    timestamp components
  1612.     00 date only
  1613.     01 time only
  1614.     10 date and time
  1615.     11 day and date
  1616.  4    supply am/pm
  1617.  5    supply seconds
  1618.  6    show year
  1619.  7    four-digit year
  1620. --------b-60----DI0B09-----------------------
  1621. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GET_SETTINGS"
  1622.     DI = 0B09h
  1623.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1624.         DWORD    pointer to ??? (see #03294)
  1625.         DWORD    pointer to ???
  1626. Return: ???
  1627.     STACK unchanged
  1628. SeeAlso: INT 60/DI=0B0Ah,INT 60/DI=0B0Fh
  1629.  
  1630. Format of HP 95LX system settings:
  1631. Offset    Size    Description    (Table 03294)
  1632.  00h    WORD    country code
  1633.  02h    WORD    speaker volume (00h-03h or FFh for off)
  1634.  04h    WORD    contrast level (00h-0Fh)
  1635.  06h    WORD    week start (00h Sunday, 01h Monday)
  1636.  08h    WORD    punctuation format (see #03295)
  1637.  0Ah    WORD    two-character language code (only 5355h = "US" byte-swapped)
  1638.  0Ch    WORD    current date format (see #03296)
  1639.  0Eh    WORD    current time format (see #03297)
  1640.  10h    WORD    collating sequence
  1641.         00h numbers first, 01h letters first, 02h ASCII
  1642.  12h 80 BYTEs    name of picture file
  1643.  62h 30 BYTEs    name
  1644.  80h 30 BYTEs    title
  1645.  9Eh 28 BYTEs    company name
  1646.  BAh    WORD    number of languages
  1647.  BCh  6 BYTEs    available languages
  1648.  C2h 66 BYTEs    language menu
  1649. 104h  2 BYTEs    ASCIZ date separator
  1650. 106h  2 BYTEs    ASCIZ time separator
  1651. 108h    BYTE    date order
  1652. 109h    BYTE    use 24 hour time?
  1653. 10Ah 16 BYTEs    currency string
  1654. 11Ah    WORD    currency string position (00h prefix, 01h suffix)
  1655. 11Ch    WORD    keyboard (see #03298)
  1656. 11Eh    WORD    printer baud rate
  1657.         00h 300, 01h 1200, 02h 2400, 03h 4800, 04h 9600, 05h 19200
  1658. 120h    WORD    printer driver code
  1659.         00h Epson FX80, 01h HP Laserjet, 02h IBM ProPrinter
  1660. 122h    WORD    printer interface (00h COM1, 01h COM2, 02h IR, 03h LPT1)
  1661. 124h    WORD    system manager interrupt (60h by default)
  1662. 126h    WORD    code page (01h CP850, 02h CP437)
  1663. 128h    WORD    active exit key
  1664. 12Ah    WORD    active menu key
  1665. 12Ch    WORD    active CHAR key toggle
  1666. 12Eh  6 BYTEs    alarm
  1667.  
  1668. (Table 03295)
  1669. Values for HP 95LX punctuation format:
  1670.  code    decimal arg    thousands
  1671.  00h    .    ,    ,
  1672.  01h    ,    .    .
  1673.  02h    .    ;    ;
  1674.  03h    ,    ;    .
  1675.  04h    .    ,    " "
  1676.  05h    ,    .    " "
  1677.  06h    .    ;    " "
  1678.  07h    ,    ;    " "
  1679.  
  1680. (Table 03296)
  1681. Values for HP 95LX current date format:
  1682.  00h    dd-mmm-yy
  1683.  01h    dd-mmm
  1684.  02h    mmm-yy
  1685.  03h    mm/dd/yy
  1686.  04h    dd/mm/yy
  1687.  05h    dd.mm.yy
  1688.  06h    yy-mm-dd
  1689.  07h    mm/dd
  1690.  08h    dd/mm
  1691.  09h    dd.mm
  1692.  0Ah    mm-dd
  1693.  
  1694. (Table 03297)
  1695. Values for HP 95LX current time format:
  1696.  00h    HH:MM:SS am/pm
  1697.  01h    HH:MM am/pm
  1698.  02h    HH:MM:SS
  1699.  03h    HH.MM.SS
  1700.  04h    HH,MM,SS
  1701.  05h    HHhMMmSSs
  1702.  06h    HH:MM
  1703.  07h    HH.MM
  1704.  08h    HH,MM
  1705.  09h    HHhMMm
  1706.  
  1707. (Table 03298)
  1708. Values for HP 95LX keyboard layout:
  1709.  0001h    Belgium
  1710.  0002h    French Canadian
  1711.  0004h    Denmark
  1712.  0008h    Finland
  1713.  0010h    French
  1714.  0020h    Finland
  1715.  0040h    Italy
  1716.  0080h    Netherlands
  1717.  0100h    Norway
  1718.  0200h    Portugal
  1719.  0400h    Spain
  1720.  0800h    Sweden
  1721.  1000h    Swiss French
  1722.  2000h    Swiss German
  1723.  4000h    United Kingdom
  1724.  8000h    USA
  1725. --------b-60----DI0B0A-----------------------
  1726. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_SET_SETTINGS"
  1727.     DI = 0B0Ah
  1728.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1729.         DWORD    pointer to ???
  1730.         DWORD    pointer to ???
  1731. Return: ???
  1732.     STACK unchanged
  1733. SeeAlso: INT 60/DI=0B09h
  1734. --------b-60----DI0B0B-----------------------
  1735. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_START_TIMER"
  1736.     DI = 0B0Bh
  1737.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1738.         DWORD    pointer to ???
  1739. Return: ???
  1740.     STACK unchanged
  1741. SeeAlso: INT 60/DI=0B0Ch,INT 60/DI=0B0Dh
  1742. --------b-60----DI0B0C-----------------------
  1743. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_STOP_TIMER"
  1744.     DI = 0B0Ch
  1745.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1746.         DWORD    pointer to ???
  1747. Return: ???
  1748.     STACK unchanged
  1749. SeeAlso: INT 60/DI=0B0Bh,INT 60/DI=0B0Dh
  1750. --------b-60----DI0B0D-----------------------
  1751. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GET_TIMER"
  1752.     DI = 0B0Dh
  1753.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1754.         DWORD    pointer to ???
  1755.         DWORD    pointer to ???
  1756.         DWORD    pointer to ???
  1757. Return: ???
  1758.     STACK unchanged
  1759. SeeAlso: INT 60/DI=0B0Bh,INT 60/DI=0B0Ch
  1760. --------b-60----DI0B0E-----------------------
  1761. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_TELL_ANYTIME"
  1762.     DI = 0B0Eh
  1763.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1764.         WORD    ???
  1765.         WORD    ???
  1766.         WORD    ???
  1767.         DWORD    pointer to ???
  1768.         DWORD    pointer to ???
  1769. Return: DX:AX -> ???
  1770.     STACK unchanged
  1771. --------b-60----DI0B0F-----------------------
  1772. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVCE "M_GET_SETTINGS_ADDR"
  1773.     DI = 0B0Fh
  1774.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1775. Return: DX:AX -> system settings record (see #03294)
  1776.     STACK unchanged
  1777. SeeAlso: INT 60/DI=0B09h
  1778. --------b-60----DI0B10-----------------------
  1779. INT 60 u - HP 95LX System Manager - PARSE DATE SPECIFICATION
  1780.     DI = 0B10h
  1781.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1782.         WORD    ???
  1783.         DWORD    pointer to ???
  1784.         DWORD    pointer to ???
  1785. Return: ???
  1786.     STACK unchanged
  1787. --------b-60----DI0B11-----------------------
  1788. INT 60 u - HP 95LX System Manager - PARSE TIME SPECIFICATION
  1789.     DI = 0B11h
  1790.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1791.         WORD    ???
  1792.         DWORD    pointer to ???
  1793.         DWORD    pointer to ???
  1794. Return: ???
  1795.     STACK unchanged
  1796. --------b-60----DI0B12-----------------------
  1797. INT 60 u - HP 95LX System Manager - SET DATE PARSING RULE
  1798.     DI = 0B12h
  1799.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1800.         WORD    new parsing rule (see #03299)
  1801. Return: ???
  1802.     STACK unchanged
  1803. SeeAlso: INT 60/DI=0B13h
  1804.  
  1805. (Table 03299)
  1806. Values for HP 95LX date parsing rule:
  1807.  01h    day-month-year
  1808.  02h    month-day-year
  1809.  03h    year-month-day
  1810.  04h    "DMYO"
  1811.  05h    "MDYO"
  1812.  OR with 08h to get any year
  1813. --------b-60----DI0B13-----------------------
  1814. INT 60 u - HP 95LX System Manager - SET TIME PARSING RULE
  1815.     DI = 0B13h
  1816.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1817.         WORD    new parsing rule (see #03300)
  1818. Return: ???
  1819.     STACK unchanged
  1820. SeeAlso: INT 60/DI=0B12h
  1821.  
  1822. (Table 03300)
  1823. Values for HP 95LX time parsing rule:
  1824.  01h    HH:MM:SS (am/pm)
  1825.  02h    HH:MM:SS (24hr)
  1826.  03h    HHMM:SS (24hr)
  1827.  04h    HH:MM:SS.hh (24hr)
  1828.  05h    HH:MM (am/pm)
  1829.  06h    HH:MM (24hr)
  1830.  07h    HHMM (24hr)
  1831. --------b-60----DI0B14-----------------------
  1832. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_POST_TIME"
  1833.     DI = 0B14h
  1834.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1835. Return: ???
  1836.     STACK unchanged
  1837. --------b-60----DI0B15-----------------------
  1838. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_DAY_TRIGGER"
  1839.     DI = 0B15h
  1840.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1841.         WORD    ???
  1842. Return: ???
  1843.     STACK unchanged
  1844. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  1845. --------b-60----DI0C00-----------------------
  1846. INT 60 u - HP 95LX System Manager - OPEN PRINTER
  1847.     DI = 0C00h
  1848.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1849. Return: ???
  1850.     STACK unchanged
  1851. SeeAlso: INT 60/DI=0C01h,INT 60/DI=0C02h,INT 60/DI=0C03h
  1852. --------b-60----DI0C01-----------------------
  1853. INT 60 u - HP 95LX System Manager - CLOSE PRINTER
  1854.     DI = 0C01h
  1855.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1856. Return: ???
  1857.     STACK unchanged
  1858. Note:    relinquishes control of printer
  1859. SeeAlso: INT 60/DI=0C00h
  1860. --------b-60----DI0C02-----------------------
  1861. INT 60 u - HP 95LX System Manager - WRITE TO PRINTER
  1862.     DI = 0C02h
  1863.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1864.         DWORD    pointer to data to be written
  1865.         WORD    length of data
  1866. Return: ???
  1867.     STACK unchanged
  1868. SeeAlso: INT 60/DI=0C00h
  1869. --------b-60----DI0C03-----------------------
  1870. INT 60 u - HP 95LX System Manager - INITIALIZE PRINTER
  1871.     DI = 0C03h
  1872.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1873. Return: ???
  1874.     STACK unchanged
  1875. SeeAlso: INT 60/DI=0C00h
  1876. --------b-60----DI0C04-----------------------
  1877. INT 60 u - HP 95LX System Manager - "M_TRANS_PRINTER"
  1878.     DI = 0C04h
  1879.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1880.         WORD    ???
  1881.         DWORD    pointer to ???
  1882. Return: ???
  1883.     STACK unchanged
  1884. --------b-60----DI0C05-----------------------
  1885. INT 60 u - HP 95LX System Manager - "M_FALL_PRINTER"
  1886.     DI = 0C05h
  1887.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1888.         WORD    ???
  1889.         DWORD    pointer to ???
  1890. Return: ???
  1891.     STACK unchanged
  1892. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  1893. --------b-60----DI0E00-----------------------
  1894. INT 60 u - HP 95LX System Manager - COMMUNICATIONS SERVICE "M_COMM_INIT"
  1895.     DI = 0E00h
  1896.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1897.         DWORD    pointer to ???
  1898. Return: ???
  1899.     STACK unchanged
  1900. SeeAlso: #03301,INT 60/DI=0E01h,INT 60/DI=0E02h
  1901.  
  1902. (Table 03301)
  1903. Values for HP 95LX error code:
  1904.  0000h    successful
  1905.  FFF1h    "E_BUSY"
  1906.  FFF2h    timeout
  1907.  FFF3h    framing error
  1908.  FFF4h    parity error
  1909.  FFF5h    overrun error
  1910.  FFF6h    "E_EMPTY"
  1911.  FFF7h    "E_CONECT"
  1912.  FFF8h    not open
  1913.  FFF9h    out of memory
  1914.  FFFAh    buffer overflow
  1915.  FFFBh    "E_NOFIT"
  1916.  FFFCh    unsupported
  1917.  FFFDh    "E_IVOPR"
  1918.  FFFEh    "E_IVCHN"
  1919.  FFFFh    "E_REOPEN"
  1920. --------b-60----DI0E01-----------------------
  1921. INT 60 u - HP 95LX System Manager - OPEN COMMUNICATIONS CHANNEL
  1922.     DI = 0E01h
  1923.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1924.         DWORD    pointer to WORD buffer for comm channel handle
  1925.         WORD    communications line number (01h-04h)
  1926. Return: ???
  1927.     STACK unchanged
  1928. SeeAlso: INT 60/DI=0E00h,INT 60/DI=0E02h
  1929. --------b-60----DI0E02-----------------------
  1930. INT 60 u - HP 95LX System Manager - CLOSE COMMUNICATIONS CHANNEL
  1931.     DI = 0E02h
  1932.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1933.         WORD    comm channel handle
  1934. Return: ???
  1935.     STACK unchanged
  1936. SeeAlso: INT 60/DI=0E00h,INT 60/DI=0E01h
  1937. --------b-60----DI0E03-----------------------
  1938. INT 60 u - HP 95LX System Manager - "M_COMM_GETMDM"
  1939.     DI = 0E03h
  1940.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1941.         WORD    ???
  1942. Return: ???
  1943.     STACK unchanged
  1944. --------b-60----DI0E04-----------------------
  1945. INT 60 u - HP 95LX System Manager - "M_COMM_ANSWER"
  1946.     DI = 0E04h
  1947.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1948.         WORD    ???
  1949.         WORD    ???
  1950. Return: ???
  1951.     STACK unchanged
  1952. --------b-60----DI0E05-----------------------
  1953. INT 60 u - HP 95LX System Manager - "M_COMM_DIAL"
  1954.     DI = 0E05h
  1955.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1956.         WORD    ???
  1957.         DWORD    pointer to ???
  1958. Return: ???
  1959.     STACK unchanged
  1960. --------b-60----DI0E06-----------------------
  1961. INT 60 u - HP 95LX System Manager - RESET COMMUNICATIONS CHANNEL
  1962.     DI = 0E06h
  1963.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1964.         WORD    comm channel handle
  1965.         WORD    reset options (see #03302)
  1966. Return: ???
  1967.     STACK unchanged
  1968.  
  1969. Bitfields for HP 95LX reset options:
  1970. Bit(s)    Description    (Table 03302)
  1971.  0    reset line
  1972.  1    flush transmit buffer
  1973.  2    flush receive buffer
  1974.  3    reset modem
  1975.  4    reset receiver's ^S state
  1976.  5    reset transmitter's ^S state
  1977. --------b-60----DI0E07-----------------------
  1978. INT 60 u - HP 95LX System Manager - "M_COMM_HANGUP"
  1979.     DI = 0E07h
  1980.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1981.         WORD    ???
  1982. Return: ???
  1983.     STACK unchanged
  1984. --------b-60----DI0E08-----------------------
  1985. INT 60 u - HP 95LX System Manager - SEND DATA OVER COMM CHANNEL
  1986.     DI = 0E08h
  1987.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1988.         WORD    comm channel handle
  1989.         DWORD    pointer to data to be sent
  1990.         WORD    option flags
  1991.             bit 0: send partial buffer
  1992.             bit 1: turn on receiver after sending
  1993.         DWORD    pointer to WORD containing length of data to be sent
  1994. Return: length WORD updated to contain number of bytes actually sent???
  1995.     STACK unchanged
  1996. SeeAlso: INT 60/DI=0E09h,INT 60/DI=0E0Bh
  1997. --------b-60----DI0E09-----------------------
  1998. INT 60 u - HP 95LX System Manager - QUERY COMM CHANNEL TRANSMIT QUEUE
  1999.     DI = 0E09h
  2000.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2001.         WORD    ???
  2002.         DWORD    pointer to ??? WORD
  2003.         DWORD    pointer to ??? WORD
  2004. Return: ???
  2005.     STACK unchanged
  2006. SeeAlso: INT 60/DI=0E0Ah
  2007. --------b-60----DI0E0A-----------------------
  2008. INT 60 u - HP 95LX System Manager - QUERY COMM CHANNEL RECEIVE QUEUE
  2009.     DI = 0E0Ah
  2010.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2011.         WORD    comm channel handle
  2012.         DWORD    pointer to WORD to get receive buffer size
  2013.         DWORD    pointer to WORD to get free bytes in receive buffer
  2014. Return: ???
  2015.     STACK unchanged
  2016. SeeAlso: INT 60/DI=0E09h,INT 60/DI=0E0Bh
  2017. --------b-60----DI0E0B-----------------------
  2018. INT 60 u - HP 95LX System Manager - RECEIVE DATA FROM COMM CHANNEL
  2019.     DI = 0E0Bh
  2020.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2021.         WORD    comm channel handle
  2022.         DWORD    pointer to data buffer
  2023.         DWORD    pointer to WORD (call) length of data buffer
  2024.                     (ret) number of bytes received
  2025. Return: ???
  2026.     STACK unchanged
  2027. SeeAlso: INT 60/DI=0E08h,INT 60/DI=0E0Ah
  2028. --------b-60----DI0E0C-----------------------
  2029. INT 60 u - HP 95LX System Manager - "M_COMM_HAZCMD"
  2030.     DI = 0E0Ch
  2031.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2032.         WORD    ???
  2033.         DWORD    pointer to ???
  2034.         WORD    ???
  2035. Return: ???
  2036.     STACK unchanged
  2037. --------b-60----DI0E0D-----------------------
  2038. INT 60 u - HP 95LX System Manager - "M_COMM_COMAND"
  2039.     DI = 0E0Dh
  2040.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2041.         WORD    ???
  2042.         DWORD    pointer to ???
  2043.         WORD    ???
  2044. Return: ???
  2045.     STACK unchanged
  2046. --------b-60----DI0E0E-----------------------
  2047. INT 60 u - HP 95LX System Manager - "M_COMM_BREAK"
  2048.     DI = 0E0Eh
  2049.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2050.         WORD    ???
  2051.         WORD    ???
  2052. Return: ???
  2053.     STACK unchanged
  2054. --------b-60----DI0E0F-----------------------
  2055. INT 60 u - HP 95LX System Manager - "M_COMM_FRCXON"
  2056.     DI = 0E0Fh
  2057.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2058.         WORD    ???
  2059. Return: ???
  2060.     STACK unchanged
  2061. --------b-60----DI0E10-----------------------
  2062. INT 60 u - HP 95LX System Manager - "M_COMM_FRCXOF"
  2063.     DI = 0E10h
  2064.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2065.         WORD    ???
  2066. Return: ???
  2067.     STACK unchanged
  2068. --------b-60----DI0E11-----------------------
  2069. INT 60 u - HP 95LX System Manager - "M_COMM_SETDTR"
  2070.     DI = 0E11h
  2071.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2072.         WORD    ???
  2073.         WORD    ???
  2074. Return: ???
  2075.     STACK unchanged
  2076. --------b-60----DI0E12-----------------------
  2077. INT 60 u - HP 95LX System Manager - "M_COMM_XMITNG"
  2078.     DI = 0E12h
  2079.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2080.         WORD    ???
  2081. Return: ???
  2082.     STACK unchanged
  2083. --------b-60----DI0E13-----------------------
  2084. INT 60 u - HP 95LX System Manager - "M_COMM_STATUS"
  2085.     DI = 0E13h
  2086.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2087.         WORD    ???
  2088. Return: ???
  2089.     STACK unchanged
  2090. --------b-60----DI0E14-----------------------
  2091. INT 60 u - HP 95LX System Manager - SET COMMUNICATIONS SETTINGS
  2092.     DI = 0E14h
  2093.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2094.         WORD    comm channel handle
  2095.         DWORD    pointer to communications settings (see #03303)
  2096. Return: ???
  2097.     STACK unchanged
  2098. SeeAlso: INT 60/DI=0E15h
  2099.  
  2100. Format of HP 95LX communications settings:
  2101. Offset    Size    Description    (Table 03303)
  2102.  00h    BYTE    dial type ('T' tone, 'P' pulse)
  2103.  01h    WORD    baud rate divisor (115200/baud_rate)
  2104.  03h    BYTE    parity (00h none, 08h odd, 18h even, 28h mark, 38h space)
  2105.  04h    BYTE    stop bits (00h one, 04h two)
  2106.  05h    BYTE    data bits - 5
  2107.  06h    BYTE    software handshake
  2108.         01h none, 02h XOFF/XON, 04h XOFF/any, 08h ENQ/ACK
  2109.  07h    BYTE    infrared (01h off, 02h on)
  2110.  08h    BYTE    duplex (01h half, 02h full)
  2111.  09h    BYTE    echo (01h echo, 02h no echo)
  2112. --------b-60----DI0E15-----------------------
  2113. INT 60 u - HP 95LX System Manager - GET COMMUNICATIONS SETTINGS
  2114.     DI = 0E15h
  2115.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2116.         WORD    ???
  2117.         DWORD    pointer to buffer for settings (see #03303)
  2118. Return: ???
  2119.     STACK unchanged
  2120. SeeAlso: INT 60/DI=0E14h
  2121. --------b-60----DI0E16-----------------------
  2122. INT 60 u - HP 95LX System Manager - "M_COMM_CNFGUR"
  2123.     DI = 0E16h
  2124.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2125.         WORD    ???
  2126.         WORD    ???
  2127.         WORD    ???
  2128.         WORD    ???
  2129.         WORD    ???
  2130. Return: ???
  2131.     STACK unchanged
  2132. --------b-60----DI0E17-----------------------
  2133. INT 60 u - HP 95LX System Manager - "M_COMM_QRYERR"
  2134.     DI = 0E17h
  2135.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2136.         WORD    ???
  2137. Return: ???
  2138.     STACK unchanged
  2139. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  2140. --------b-60----DI0F00-----------------------
  2141. INT 60 u - HP 95LX System Manager - "M_ERRMSG"
  2142.     DI = 0F00h
  2143.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2144.         WORD    ???
  2145.         DWORD    pointer to ???
  2146.         WORD    ???
  2147.         DWORD    pointer to ???
  2148. Return: ???
  2149.     STACK unchanged
  2150. --------b-60----DI0F01-----------------------
  2151. INT 60 u - HP 95LX System Manager - DRAW STANDARD TITLE BOX
  2152.     DI = 0F01h
  2153.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2154.         DWORD    pointer to ASCIZ title string
  2155. Return: ???
  2156.     STACK unchanged
  2157. --------b-60----DI0F02-----------------------
  2158. INT 60 u - HP 95LX System Manager - "SHOWNAME"
  2159.     DI = 0F02h
  2160.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2161.         DWORD    pointer to ???
  2162. Return: ???
  2163.     STACK unchanged
  2164. --------b-60----DI0F03-----------------------
  2165. INT 60 u - HP 95LX System Manager - DISPLAY TWO-LINE MESSAGE BOX
  2166.     DI = 0F03h
  2167.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2168.         DWORD    pointer to first line of message
  2169.         WORD    length of first line
  2170.         DWORD    pointer to second line of message
  2171.         WORD    length of second line
  2172. Return: ???
  2173.     STACK unchanged
  2174. SeeAlso: INT 60/DI=0300h,INT 60/DI=0F04h,INT 60/DI=0F09h
  2175. --------b-60----DI0F04-----------------------
  2176. INT 60 u - HP 95LX System Manager - REMOVE MESSAGE BOX
  2177.     DI = 0F04h
  2178.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2179. Return: ???
  2180.     STACK unchanged
  2181. SeeAlso: INT 60/DI=0F03h,INT 60/DI=0F09h
  2182. --------b-60----DI0F05-----------------------
  2183. INT 60 u - HP 95LX System Manager - "M_COM_TIMER_ADDR"
  2184.     DI = 0F05h
  2185.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2186. Return: DX:AX -> ???
  2187.     STACK unchanged
  2188. --------b-60----DI0F06-----------------------
  2189. INT 60 u - HP 95LX System Manager - "M_COM_TIMER_COUNT_ADDR"
  2190.     DI = 0F06h
  2191.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2192. Return: DX:AX -> ???
  2193.     STACK unchanged
  2194. --------b-60----DI0F07-----------------------
  2195. INT 60 u - HP 95LX System Manager - "M_SYS_RSRC_ADDR"
  2196.     DI = 0F07h
  2197.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2198. Return: DX:AX -> ???
  2199.     STACK unchanged
  2200. --------b-60----DI0F08-----------------------
  2201. INT 60 u - HP 95LX System Manager - "M_BIOS_OUTSTR"
  2202.     DI = 0F08h
  2203.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2204.         ???
  2205. Return: ???
  2206.     STACK unchanged
  2207. --------b-60----DI0F09-----------------------
  2208. INT 60 u - HP 95LX System Manager - DISPLAY THREE-LINE MESSAGE BOX
  2209.     DI = 0F09h
  2210.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2211.         DWORD    pointer to first line of message
  2212.         WORD    length of first line
  2213.         DWORD    pointer to second line of message
  2214.         WORD    length of second line
  2215.         DWORD    pointer to third line of message
  2216.         WORD    length of third line
  2217. Return: ???
  2218.     STACK unchanged
  2219. SeeAlso: INT 60/DI=0F03h,INT 60/DI=0F04h
  2220. --------b-60----DI0F0A-----------------------
  2221. INT 60 u - HP 95LX System Manager - DISABLE MACROS
  2222.     DI = 0F0Ah
  2223.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2224. Return: ???
  2225.     STACK unchanged
  2226. SeeAlso: INT 60/DI=0F0Bh
  2227. --------b-60----DI0F0B-----------------------
  2228. INT 60 u - HP 95LX System Manager - ENABLE MACROS
  2229.     DI = 0F0Bh
  2230.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2231. Return: ???
  2232.     STACK unchanged
  2233. SeeAlso: INT 60/DI=0F0Ah
  2234. --------b-60----DI0F0C-----------------------
  2235. INT 60 u - HP 95LX System Manager - "M_DATE_TIME_SEPS"
  2236.     DI = 0F0Ch
  2237.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2238.         ???
  2239. Return: ???
  2240.     STACK unchanged
  2241. --------b-60----DI0F0D-----------------------
  2242. INT 60 u - HP 95LX System Manager - "M_FORM_FT"
  2243.     DI = 0F0Dh
  2244.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2245.         DWORD    pointer to ???
  2246. Return: DX:AX -> ???
  2247.     STACK unchanged
  2248. --------b-60----DI0F0E-----------------------
  2249. INT 60 u - HP 95LX System Manager - "M_RAM_IV_INFO"
  2250.     DI = 0F0Eh
  2251.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2252.         DWORD    pointer to ???
  2253. Return: DX:AX -> ???
  2254.     STACK unchanged
  2255. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  2256. --------b-60----DI1005-----------------------
  2257. INT 60 u - HP 95LX System Manager - "M_DIRTY_SYNC" - FORCE SCREEN UPDATE
  2258.     DI = 1005h
  2259.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2260. Return: ???
  2261.     STACK unchanged
  2262. SeeAlso: INT 10/AH=FFh,INT 60/DI=0300h,INT 60/DI=0301h
  2263. --------b-60----DI1200-----------------------
  2264. INT 60 u - HP 95LX System Manager - RESOURCE SERVICE "MAP_RESOURCE_FILE"
  2265.     DI = 1200h
  2266.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2267.         DWORD    pointer to ???
  2268. Return: ???
  2269.     STACK unchanged
  2270. --------b-60----DI1201-----------------------
  2271. INT 60 u - HP 95LX System Manager - "GET_RESOURCE_PTR"
  2272.     DI = 1201h
  2273.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2274.         WORD    ???
  2275. Return: DX:AX -> ???
  2276.     STACK unchanged
  2277. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  2278. --------b-60----DI1202-----------------------
  2279. INT 60 u - HP 95LX System Manager - "GET_RSRC_TAB_PTR"
  2280.     DI = 1202h
  2281.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2282. Return: DX:AX -> ???
  2283.     STACK unchanged
  2284. --------b-60----DI1203-----------------------
  2285. INT 60 u - HP 95LX System Manager - "INIT_SYSMGR_RSRCS"
  2286.     DI = 1203h
  2287.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2288. Return: ???
  2289.     STACK unchanged
  2290. --------b-60----DI1300-----------------------
  2291. INT 60 u - HP 95LX System Manager - INITIALIZE HELP SYSTEM
  2292.     DI = 1300h
  2293.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2294.         DWORD    pointer to ???
  2295.         DWORD    pointer to ???
  2296.         WORD    ???
  2297. Return: ???
  2298.     STACK unchanged
  2299. --------b-60----DI1301-----------------------
  2300. INT 60 u - HP 95LX System Manager - DISPLAY HELP
  2301.     DI = 1301h
  2302.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2303.         DWORD    pointer to ???
  2304. Return: ???
  2305.     STACK unchanged
  2306. --------b-60----DI1302-----------------------
  2307. INT 60 u - HP 95LX System Manager - "M_HELP_KEY"
  2308.     DI = 1302h
  2309.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2310.         DWORD    pointer to ???
  2311.         WORD    ???
  2312. Return: ???
  2313.     STACK unchanged
  2314. --------b-60----DI1303-----------------------
  2315. INT 60 u - HP 95LX System Manager - "M_HELP_TERM"
  2316.     DI = 1303h
  2317.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2318.         DWORD    pointer to ???
  2319. Return: ???
  2320.     STACK unchanged
  2321. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  2322. --------b-60----DI1400-----------------------
  2323. INT 60 u - HP 95LX System Manager - "M_ColInit"
  2324.     DI = 1400h
  2325.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2326. Return: AX = ???
  2327.     STACK unchanged
  2328. --------b-60----DI1401-----------------------
  2329. INT 60 u - HP 95LX System Manager - "M_ColCpStr"
  2330.     DI = 1401h
  2331.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2332.         DWORD    pointer to ???
  2333.         WORD    ???
  2334.         DWORD    pointer to ???
  2335.         WORD    ???
  2336. Return: ???
  2337.     STACK unchanged
  2338. --------b-60----DI1402-----------------------
  2339. INT 60 u - HP 95LX System Manager - "M_ColLicsStr"
  2340.     DI = 1402h
  2341.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2342.         ???
  2343. Return: ???
  2344.     STACK unchanged
  2345. --------b-60----DI1403-----------------------
  2346. INT 60 u - HP 95LX System Manager - "M_ColLicsChar"
  2347.     DI = 1403h
  2348.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2349.         ???
  2350. Return: ???
  2351.     STACK unchanged
  2352. --------b-60----DI1404-----------------------
  2353. INT 60 u - HP 95LX System Manager - "M_ColToLower"
  2354.     DI = 1404h
  2355.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2356.         DWORD    pointer to ???
  2357.         WORD    ???
  2358. Return: ???
  2359.     STACK unchanged
  2360. --------b-60----DI1405-----------------------
  2361. INT 60 u - HP 95LX System Manager - "M_ColCpSearch"
  2362.     DI = 1405h
  2363.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2364.         DWORD    pointer to ???
  2365.         WORD    ???
  2366.         DWORD    pointer to ???
  2367.         WORD    ???
  2368.         WORD    ???
  2369. Return: ???
  2370.     STACK unchanged
  2371. --------b-60----DI1406-----------------------
  2372. INT 60 u - HP 95LX System Manager - "M_ColToUpper"
  2373.     DI = 1406h
  2374.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2375.         DWORD    pointer to ???
  2376.         WORD    ???
  2377. Return: ???
  2378.     STACK unchanged
  2379. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  2380. --------b-60----DI1500-----------------------
  2381. INT 60 u - HP 95LX System Manager - "GrDispInit"
  2382.     DI = 1500h
  2383.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2384.         ???
  2385. Return: ???
  2386.     STACK unchanged
  2387. --------b-60----DI1501-----------------------
  2388. INT 60 u - HP 95LX System Manager - "GrDispClear"
  2389.     DI = 1501h
  2390.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2391.         ???
  2392. Return: ???
  2393.     STACK unchanged
  2394. --------b-60----DI1502-----------------------
  2395. INT 60 u - HP 95LX System Manager - "GrDispDot"
  2396.     DI = 1502h
  2397.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2398.         ???
  2399. Return: ???
  2400.     STACK unchanged
  2401. --------b-60----DI1503-----------------------
  2402. INT 60 u - HP 95LX System Manager - "GrDispDraw"
  2403.     DI = 1503h
  2404.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2405.         ???
  2406. Return: ???
  2407.     STACK unchanged
  2408. --------b-60----DI1504-----------------------
  2409. INT 60 u - HP 95LX System Manager - "GrDispFill"
  2410.     DI = 1504h
  2411.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2412.         ???
  2413. Return: ???
  2414.     STACK unchanged
  2415. --------b-60----DI1505-----------------------
  2416. INT 60 u - HP 95LX System Manager - "GrDispRead"
  2417.     DI = 1505h
  2418.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2419.         ???
  2420. Return: ???
  2421.     STACK unchanged
  2422. --------b-60----DI1506-----------------------
  2423. INT 60 u - HP 95LX System Manager - "GrDispString"
  2424.     DI = 1506h
  2425.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2426.         ???
  2427. Return: ???
  2428.     STACK unchanged
  2429. --------b-60----DI1507-----------------------
  2430. INT 60 u - HP 95LX System Manager - "GrDispPan"
  2431.     DI = 1507h
  2432.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2433.         ???
  2434. Return: ???
  2435.     STACK unchanged
  2436. --------b-60----DI1508-----------------------
  2437. INT 60 u - HP 95LX System Manager - "GrDispZoom"
  2438.     DI = 1508h
  2439.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2440.         ???
  2441. Return: ???
  2442.     STACK unchanged
  2443. --------b-60----DI1509-----------------------
  2444. INT 60 u - HP 95LX System Manager - "GrDispSave"
  2445.     DI = 1509h
  2446.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2447.         ???
  2448. Return: ???
  2449.     STACK unchanged
  2450. --------b-60----DI150A-----------------------
  2451. INT 60 u - HP 95LX System Manager - "GrDispRestore"
  2452.     DI = 150Ah
  2453.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2454.         ???
  2455. Return: ???
  2456.     STACK unchanged
  2457. --------b-60----DI150B-----------------------
  2458. INT 60 u - HP 95LX System Manager - "GrDispCorner"
  2459.     DI = 150Bh
  2460.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2461.         ???
  2462. Return: ???
  2463.     STACK unchanged
  2464. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  2465. --------b-60----DI1604-----------------------
  2466. INT 60 u - HP 95LX System Manager - "CP_TO_LICS"
  2467.     DI = 1604h
  2468.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2469.         ???
  2470. Return: ???
  2471.     STACK unchanged
  2472. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  2473. --------G-6000-------------------------------
  2474. INT 60 - SYS_PROF.EXE - PROFILER STATUS
  2475.     AH = 00h
  2476. Return: AX = 0000h    profiling is off
  2477.         otherwise profiling is on
  2478. Note:    SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia
  2479.       Issue 47
  2480. SeeAlso: AH=01h"SYS_PROF",AH=02h"SYS_PROF"
  2481. --------G-6000-------------------------------
  2482. INT 60 - MDEBUG - GET STATUS
  2483.     AH = 00h
  2484.     DS:SI -> password or a null byte
  2485. Return: AX = return code
  2486.         FFFEh password is invalid
  2487.         FFFDh display mode is invalid
  2488.         else successful
  2489.         ES = value of the monitor register SE
  2490.         DI = value of the monitor register OF
  2491.         CH = monitor color
  2492.         CL = interpreter color
  2493.         BH = monitor start line
  2494.         BL = interpreter start line
  2495.         AH = makecode of the hotkey
  2496.         AL = ASCII code of the hotkey
  2497.         DL = status of special keys (only SHIFT, ALT, CTRL) for the
  2498.               hotkey (coded as for the keyboard flag at 0040h:0017h)
  2499.         DH = basic process number for the communication with drivers
  2500.               process number for the display driver, DH+1 = process
  2501.               number for the command driver(s)
  2502.     DS:SI -> MDEBUG identification table (see #03304)
  2503. Program: MDEBUG is a shareware memory-resident debugging tool by Bernd
  2504.       Schemmer, including a memory monitor, an interpreter, and a
  2505.       disassembler
  2506. Notes:    MDEBUG uses INT 60 by default, but may be directed to any of INT 60
  2507.       through INT 67; the interrupt handler is preceded by the signature
  2508.       "USERINT" and is not chained
  2509.     if DS:SI points at a null byte, MDEBUG will prompt for a password if
  2510.       passwords are active; enough stack space must be provided for an
  2511.       INT 10h call (which MDEBUG uses while prompting for the password)
  2512. SeeAlso: AH=02h"MDEBUG"
  2513. Index:    hotkeys;MDEBUG
  2514.  
  2515. Format of MDEBUG identification table:
  2516. Offset    Size    Description    (Table 03304)
  2517.  -2    WORD    entry offset
  2518.  00h    WORD    CS of MDEBUG
  2519.  02h    DWORD    old INT 08h vector
  2520.  06h    DWORD    old INT 09h vector
  2521.  0Ah    DWORD    address INT 16h routine used by MDEBUG
  2522.  0Eh    BYTE    length of version string
  2523.  0Fh  N BYTEs    version string
  2524. --------N-600000-----------------------------
  2525. INT 60 - RIFS - CLIENT - INSTALLATION CHECK
  2526.     AX = 0000h
  2527. Return: AX = 1234h if installed
  2528.     CF clear
  2529. Program: RIFS is the Remote Installable File System by "kyle"
  2530. InstallCheck:    test for the signature "RIFS" immediately preceding the
  2531.       interrupt handler
  2532. Range:    INT 60 to INT 66 and INT 18,selected by scanning for 0000h:0000h vector
  2533. SeeAlso: AX=0001h,AX=0005h,AX=0007h,AX=0008h,INT 2F/AX=5600h
  2534. --------N-600001-----------------------------
  2535. INT 60 - RIFS - CLIENT - UNINSTALL
  2536.     AX = 0001h
  2537. Return: CF clear if successful
  2538. SeeAlso: AX=0000h,AX=0009h
  2539. --------N-600002-----------------------------
  2540. INT 60 - RIFS - CLIENT - REMAP DRIVE
  2541.     AX = 0002h
  2542.     BH = local drive number
  2543.     BL = remote drive number
  2544. Return: CF clear if successful
  2545.     CF set on error
  2546. SeeAlso: AX=0000h,AX=0003h,AX=0004h,INT 21/AX=5F03h,INT 21/AX=5F05h"STARLITE"
  2547. --------N-600003-----------------------------
  2548. INT 60 - RIFS - CLIENT - UNMAP DRIVE
  2549.     AX = 0003h
  2550.     BL = drive to unmap
  2551. Return: CF clear if successful
  2552.     CF set on error
  2553. SeeAlso: AX=0000h,AX=0002h,AX=0004h,INT 21/AX=5F04h,INT 21/AX=5F06h"STARLITE"
  2554. --------N-600004-----------------------------
  2555. INT 60 - RIFS - CLIENT - UNMAP ALL DRIVES
  2556.     AX = 0004h
  2557. Return: CF clear if successful
  2558.     CF set on error
  2559. SeeAlso: AX=0000h,AX=0002h,AX=0003h
  2560. --------N-600005-----------------------------
  2561. INT 60 - RIFS - CLIENT - GET TRANSLATION TABLE
  2562.     AX = 0005h
  2563. Return: CF clear if successful
  2564.         ES:BX -> translation table
  2565.     CF set on error
  2566. SeeAlso: AX=0000h,AX=0006h,AX=0007h
  2567. --------N-600006-----------------------------
  2568. INT 60 - RIFS - CLIENT - GET STATISTICS TABLE
  2569.     AX = 0006h
  2570. Return: CF clear if successful
  2571.         ES:BX -> statistics table
  2572.     CF set on error
  2573. SeeAlso: AX=0000h,AX=0005h,AX=0007h,AX=000Ah
  2574. --------N-600007-----------------------------
  2575. INT 60 - RIFS - CLIENT - GET PORT TRANSLATION TABLE
  2576.     AX = 0007h
  2577. Return: CF clear if successful
  2578.         CX = number of entries
  2579.         ES:BX -> port mapping table
  2580.     CF set on error
  2581. SeeAlso: AX=0000h,AX=0005h
  2582. --------N-600008-----------------------------
  2583. INT 60 - RIFS - SERVER - INSTALLATION CHECK
  2584.     AX = 0008h
  2585. Return: CF clear if successful
  2586.     CF set on error
  2587. InstallCheck:    test for the signature "RIFS" immediately preceding the
  2588.       interrupt handler
  2589. Range:    INT 60 to INT 66 and INT 18,selected by scanning for 0000h:0000h vector
  2590. SeeAlso: AX=0000h,AX=0009h,AX=000Ah,AX=000Bh
  2591. --------N-600009-----------------------------
  2592. INT 60 - RIFS - SERVER - UNINSTALL
  2593.     AX = 0009h
  2594. Return: CF clear if successful
  2595.     CF set on error
  2596. SeeAlso: AX=0001h,AX=0008h
  2597. --------N-60000A-----------------------------
  2598. INT 60 - RIFS - SERVER - GET STATISTICS TABLE
  2599.     AX = 000Ah
  2600. Return: CF clear if successful
  2601.         ES:BX -> statistics table
  2602.     CF set on error
  2603. SeeAlso: AX=0006h,AX=0008h,AX=0009h,AX=000Bh
  2604. --------N-60000B-----------------------------
  2605. INT 60 - RIFS - SERVER - RESET
  2606.     AX = 000Bh
  2607. Return: CF clear if successful
  2608.     CF set on error
  2609. Note:    closes all open files
  2610. SeeAlso: AX=0008h,AX=0009h
  2611. --------G-6001-------------------------------
  2612. INT 60 - MDEBUG - GET ADDRESS OF THE HELP REGISTERS
  2613.     AH = 01h
  2614.     DS:SI -> password or a null byte
  2615. Return: AX = return code
  2616.         FFFEh password is invalid
  2617.         FFFDh display mode is invalid
  2618.         else successful
  2619.         ES:DI point to the help registers of MDEBUG
  2620.            ES:DI-02h  -> R0 (WORD)
  2621.            ES:DI      -> R1 (WORD)
  2622.            ES:DI+02h  -> R2 (WORD)
  2623.            ES:DI+04h  -> R3 (WORD)
  2624.            ...
  2625.            ES:DI+0Eh  -> R8 (WORD)
  2626. --------G-6001-------------------------------
  2627. INT 60 - SYS_PROF.EXE - TURN PROFILING OFF
  2628.     AH = 01h
  2629. Note:    SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia
  2630.       Issue 47
  2631. SeeAlso: AH=00h"SYS_PROF",AH=02h"SYS_PROF"
  2632. --------N-6001FF-----------------------------
  2633. INT 60 - FTP Packet Driver - BASIC FUNC - GET DRIVER INFO
  2634.     AX = 01FFh
  2635.     BX = handle returned by function 02h
  2636. Return: CF set on error
  2637.         DH = error code (see #03305)
  2638.     CF clear if successful
  2639.         BX = version
  2640.         CH = network interface class (see #03306)
  2641.         DX = interface type (see #03306)
  2642.         CL = number
  2643.         DS:SI -> name
  2644.         AL = driver functions supported
  2645.         01h basic
  2646.         02h basic and extended
  2647.         05h basic and high-performance
  2648.         06h basic, high-performance, and extended
  2649.         FFh not installed
  2650. Note:    the handle in BX is optional for drivers written to v1.07 or later of
  2651.       the packet driver specification
  2652.  
  2653. (Table 03305)
  2654. Values for Packet Driver error code:
  2655.  01h "BAD_HANDLE"    invalid handle number
  2656.  02h "NO_CLASS"        no interfaces of the specified class found
  2657.  03h "NO_TYPE"        no interfaces of the specified type found
  2658.  04h "NO_NUMBER"    no interfaces of the specified number found
  2659.  05h "BAD_TYPE"        bad packet type
  2660.  06h "NO_MULTICAST"    interface does not support multicast messages
  2661.  07h "CANT_TERMINATE"    this packet driver cannot terminate
  2662.  08h "BAD_MODE"        invalid receiver mode
  2663.  09h "NO_SPACE"        insufficient space
  2664.  0Ah "TYPE_INUSE"    type accessed but never released
  2665.  0Bh "BAD_COMMAND"    bad command
  2666.  0Ch "CANT_SEND"    packet could not be sent
  2667.  0Dh "CANT_SET"        hardware address could not be changed
  2668.  0Eh "BAD_ADDRESS"    hardware address has a bad length or format
  2669.  0Fh "CANT_RESET"    could not reset interface
  2670.  
  2671. (Table 03306)
  2672. Values for Packet Driver network interface classes/types:
  2673.     Class 01h  Ethernet/IEEE 802.3
  2674.     01h 3COM 3C500/3C501
  2675.     02h 3COM 3C505
  2676.     03h MICOM-Interlan NI5010
  2677.     04h BICC Data Networks 4110
  2678.     05h BICC Data Networks 4117
  2679.     06h MICOM-Interlan NP600
  2680.     08h Ungermann-Bass PC-NIC
  2681.     09h Univation NC-516
  2682.     0Ah TRW PC-2000
  2683.     0Bh MICOM-Interlan NI5210
  2684.     0Ch 3COM 3C503
  2685.     0Dh 3COM 3C523
  2686.     0Eh Western Digital WD8003
  2687.     0Fh Spider Systems S4
  2688.     10h Torus Frame Level
  2689.     11h 10Net Communications
  2690.     12h Gateway PC-bus
  2691.     13h Gateway AT-bus
  2692.     14h Gateway MCA-bus
  2693.     15h IMC PCnic
  2694.     16h IMC PCnic II
  2695.     17h IMC PCnic 8-bit
  2696.     18h Tigan Communications
  2697.     19h Micromatic Research
  2698.     1Ah Clarkson "Multiplexor"
  2699.     1Bh D-Link 8-bit
  2700.     1Ch D-Link 16-bit
  2701.     1Dh D-Link PS/2
  2702.     1Eh Research Machines 8
  2703.     1Fh Research Machines 16
  2704.     20h Research Machines MCA
  2705.     21h Radix Microsystems EXM1 16-bit
  2706.     22h Interlan Ni9210
  2707.     23h Interlan Ni6510
  2708.     24h Vestra LANMASTER 16-bit
  2709.     25h Vestra LANMASTER 8-bit
  2710.     26h Allied Telesis PC/XT/AT
  2711.     27h Allied Telesis NEC PC-98
  2712.     28h Allied Telesis Fujitsu FMR
  2713.     29h Ungermann-Bass NIC/PS2
  2714.     2Ah Tiara LANCard/E AT
  2715.     2Bh Tiara LANCard/E MC
  2716.     2Ch Tiara LANCard/E TP
  2717.     2Dh Spider Communications SpiderComm 8
  2718.     2Eh Spider Communications SpiderComm 16
  2719.     2Fh AT&T Starlan NAU
  2720.     30h AT&T Starlan-10 NAU
  2721.     31h AT&T Ethernet NAU
  2722.     32h Intel smart card
  2723.     33h Xircom Packet Adapter
  2724.     34h Aquila Ethernet
  2725.     35h Novell NE1000
  2726.     36h Novell NE2000
  2727.     37h SMC PC-510
  2728.     38h AT&T Fiber NAU
  2729.     39h NDIS to Packet Driver adapter
  2730.     3Ah Racal-InterLan ES3210
  2731.     3Bh General Systems ISDN simulated Ethernet
  2732.     3Ch Hewlett-Packard
  2733.     3Dh IMC EtherNic-8
  2734.     3Eh IMC EtherNic-16
  2735.     3Fh IMC EtherNic-MCA
  2736.     40h NetWorth EtherNext
  2737.     41h Dataco Scanet
  2738.     42h DEC DEPCA
  2739.     43h C-Net
  2740.     44h Gandalf LANLine
  2741.     45h Apricot built-in
  2742.     46h David Systems Ether-T
  2743.     47h ODI to Packet Driver adapter (see also INT 2F/AX=5100h)
  2744.     48h AMD Am21110-16
  2745.     49h Intel ICD Network controller family
  2746.     4Ah Intel ICD PCL2
  2747.     4Bh Intel ICD PCL2A
  2748.     4Ch AT&T LANPacer
  2749.     4Dh AT&T LANPacer+
  2750.     4Eh AT&T EVB
  2751.     4Fh AT&T StarStation
  2752.     50h SLIP simulated ethernet
  2753.     51h Racal-Interlan NIA310
  2754.     52h Racal-Interlan NISE
  2755.     53h Racal-Interlan NISE30
  2756.     54h Racal-Interlan NI6610
  2757.     55h Ethernet over IP/UDP
  2758.     56h ICL EtherTeam 16
  2759.     57h David Systems
  2760.     58h NCR WaveLAN
  2761.     59h Thomas Contrad TC5045
  2762.     5Ah Russ Nelson's Parallel Port driver
  2763.     5Bh Intell EtherExpress 16
  2764.     5Ch IBMTOKEN
  2765.     5Dh Zenith Z-Note
  2766.     5Eh 3Com 3C509
  2767.     5Fh Mylex LNE390
  2768.     60h Madge Smart Ringnode
  2769.     61h Novell NE2100
  2770.     62h Allied Telesis 1500
  2771.     63h Allied Telesis 1700
  2772.     64h Fujitsu EtherCoupler
  2773.     Class 02h  ProNET-10
  2774.     01h Proteon p1300
  2775.     02h Proteon p1800
  2776.     Class 03h  IEEE 802.5/ProNet-4 (without expanded RIFs)
  2777.     01h IBM Token-Ring Adapter
  2778.     02h Proteon p1340
  2779.     03h Proteon p1344
  2780.     04h Gateway PC-bus
  2781.     05h Gateway AT-bus
  2782.     06h Gateway MCA-bus
  2783.     07h Madge board
  2784.     39h NDIS to Packet Driver adapter
  2785.     47h ODI to Packet Driver adapter
  2786.     Class 04h  Omninet
  2787.     Class 05h  Appletalk
  2788.     01h ATALK.SYS adapter
  2789.     Class 06h  Serial Line
  2790.     01h Clarkson 8250-SLIP
  2791.     02h Clarkson "Multiplexor"
  2792.     03h Eicon Technologies
  2793.     Class 07h  StarLAN (subsumed by Ethernet class)
  2794.     Class 08h  ARCnet
  2795.     01h Datapoint RIM
  2796.     Class 09h  AX.25
  2797.     01h Ottawa PI card
  2798.     02h Eicon Technologies
  2799.     Class 0Ah  KISS
  2800.     Class 0Bh  IEEE 802.3 with 802.2 headers
  2801.     types same as for class 01h
  2802.     Class 0Ch  FDDI with 802.2 headers
  2803.     01h Western Digital
  2804.     02h Frontier Technology
  2805.     Class 0Dh  Internet X.25
  2806.     01h Western Digital
  2807.     02h Frontier Technology
  2808.     03h Emerging Technologies
  2809.     04h The Software Forge
  2810.     05h Link Data Intelligent X.25
  2811.     06h Eicon Technologies
  2812.     Class 0Eh  N.T. LANSTAR (encapsulating DIX Ethernet)
  2813.     01h NT LANSTAR/8
  2814.     02h NT LANSTAR/MC
  2815.     Class 0Fh  SLFP (MIT serial specification)
  2816.     01h MERIT
  2817.     Class 10h  PPP (Point-to-Point Protocol)
  2818.     01h 8250/16550 UART
  2819.     02h Niwot Networks synch
  2820.     03h Eicon Technologies
  2821.     Class 11h  802.5 with expanded RIFs
  2822.     types same as for class 3
  2823.     Class 12h  reserved for LCP/NCPs
  2824. Note: class and type numbers are cleared through FTP Software
  2825. --------G-6002-------------------------------
  2826. INT 60 - MDEBUG - SET STATUS
  2827.     AH = 02h
  2828.     DS:SI -> password or a null byte
  2829.     ES = new value for the register SE
  2830.     DI = new value for the register OF
  2831.     CH = new monitor color if nonzero
  2832.     CL = new interpreter color if nonzero
  2833.     BH = new monitor start line if nonzero
  2834.     BL = new interpreter start line if nonzero
  2835.     AL = new ASCII code for the hotkey ('A'..'Z', 'a'..'z') if nonzero
  2836.     DL = new status of the special keys (SHIFT, ALT, CTRL) for the hotkey
  2837.           if nonzero
  2838.     DH = if nonzero, new basic process number for communication with the
  2839.           drivers (DH = multiplex number for the display driver,
  2840.           DH+1 = multiplex number for the command driver or drivers)
  2841. Return: AX = return code
  2842.         FFFFh call not allowed
  2843.         FFFEh password is invalid
  2844.         FFFDh display mode is invalid
  2845.         0000h successful, status changed
  2846.         else AL = error reasons (see #03307)
  2847. Note:    the values of the registers SE and OF are always changed, the other
  2848.       values are only changed if they are valid
  2849. SeeAlso: AH=00h"MDEBUG"
  2850. Index:    hotkeys;MDEBUG
  2851.  
  2852. Bitfields for MDEBUG error reasons:
  2853. Bit(s)    Description    (Table 03307)
  2854.  0    invalid monitor start line
  2855.  1    invalid interpreter start line
  2856.  2    invalid hotkey
  2857.  3    invalid process number
  2858.  4-7    reserved
  2859. --------N-6002-------------------------------
  2860. INT 60 - FTP Packet Driver - BASIC FUNC - ACCESS TYPE
  2861.     AH = 02h
  2862.     AL = interface class
  2863.     BX = interface type
  2864.     DL = interface number
  2865.     DS:SI -> type
  2866.     CX = length of type (0000h for all packets)
  2867.     ES:DI -> receiver function (see #03308)
  2868. Return: CF set on error
  2869.         DH = error code (see #03305)
  2870.     CF clear if successful
  2871.         AX = handle
  2872. SeeAlso: AH=03h"FTP"
  2873.  
  2874. (Table 03308)
  2875. Values packet driver receiver is called with when a packet is received:
  2876.     AX = subfunction
  2877.         00h get packet buffer
  2878.         CX = buffer length
  2879.         DX = lookahead length (v1.10+)
  2880.         DS:SI -> lookahead buffer if DX nonzero (v1.10+)
  2881.         DI = error flags (class dependent) (v1.10+)
  2882.         Return: ES:DI -> packet buffer
  2883.                 0000h:0000h means throw away packet
  2884.             CX = size of buffer (v1.10+), may be smaller than
  2885.                   incoming data
  2886.         01h copy completed
  2887.         DS:SI -> buffer
  2888.         CX = bytes actually copied (v1.10+)
  2889.     BX = handle
  2890. --------G-6002-------------------------------
  2891. INT 60 - SYS_PROF.EXE - TURN PROFILING ON
  2892.     AH = 02h
  2893. Note:    SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia
  2894.       Issue 47
  2895. SeeAlso: AH=00h"SYS_PROF",AH=01h"SYS_PROF"
  2896. --------G-6003-------------------------------
  2897. INT 60 - MDEBUG - POP UP
  2898.     AH = 03h
  2899.     DS:SI -> password or a null byte
  2900.     ES -> new value for the register SE
  2901.     DI -> new value for the register OF
  2902. Return: AX = return code (see #03309)
  2903. SeeAlso: AH=04h"MDEBUG"
  2904.  
  2905. (Table 03309)
  2906. Values for MDEBUG return code:
  2907.  FFFFh    call not allowed
  2908.  FFFEh    password is invalid
  2909.  FFFDh    display mode is invalid
  2910.  else    successful
  2911. --------N-6003-------------------------------
  2912. INT 60 - FTP Packet Driver - BASIC FUNC - RELEASE TYPE
  2913.     AH = 03h
  2914.     BX = handle
  2915. Return: CF set on error
  2916.        DH = error code (see #03305)
  2917.     CF clear if successful
  2918. SeeAlso: AH=02h"FTP"
  2919. --------G-6003-------------------------------
  2920. INT 60 - SYS_PROF.EXE - GET ADDRESS OF PROFILING TABLE
  2921.     AH = 03h
  2922. Return: ES:BX -> profiling table
  2923. Note:    SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia
  2924.       Issue 47
  2925. SeeAlso: AH=04h"SYS_PROF"
  2926. --------N-6004-------------------------------
  2927. INT 60 - FTP Packet Driver - BASIC FUNC - SEND PACKET
  2928.     AH = 04h
  2929.     DS:SI -> buffer
  2930.     CX = length
  2931. Return: CF set on error
  2932.         DH = error code (see #03305)
  2933.     CF clear if successful
  2934. Note:    the buffer may be modified immediately upon return from this call
  2935. SeeAlso: AH=0Bh
  2936. --------G-6004-------------------------------
  2937. INT 60 - MDEBUG - POP UP
  2938.     AH = 04h
  2939.     DS:SI -> password or a null byte
  2940. Return: AX = return code (see #03309)
  2941. SeeAlso: AH=03h"MDEBUG",AH=07h"MDEBUG"
  2942. --------G-6004-------------------------------
  2943. INT 60 - SYS_PROF.EXE - CLEAR PROFILING TABLE
  2944.     AH = 04h
  2945. Note:    SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia
  2946.       Issue 47
  2947. SeeAlso: AH=03h"SYS_PROF"
  2948. --------N-6005-------------------------------
  2949. INT 60 - FTP Packet Driver - BASIC FUNC - TERMINATE DRIVER FOR HANDLE
  2950.     AH = 05h
  2951.     BX = handle (optional for v1.10+)
  2952. Return: CF set on error
  2953.        DH = error code (see #03305)
  2954.     CF clear if successful
  2955. --------G-6005-------------------------------
  2956. INT 60 - MDEBUG - GET AND SET MDEBUG FLAGS
  2957.     AH = 05h
  2958.     DS:SI -> password or a null byte
  2959.     BL = new value for the semaphor of MDEBUG
  2960.          00h  enable popup of MDEBUG
  2961.          else disable popup of MDEBUG
  2962. Return: AX = return code
  2963.         FFFEh password is invalid
  2964.         FFFDh display mode is invalid
  2965.         else successful
  2966.         BL = old value of the semaphor of MDEBUG
  2967.         BH = old value of the INT 08h semaphor
  2968.             (this semaphor is always reset after this function)
  2969. --------N-6006-------------------------------
  2970. INT 60 - FTP Packet Driver - BASIC FUNC - GET ADDRESS
  2971.     AH = 06h
  2972.     BX = handle (optional for v1.10+)
  2973.     ES:DI -> buffer
  2974.     CX = length
  2975. Return: CF set on error
  2976.         DH = error code (see #03305)
  2977.     CF clear if successful
  2978.         CX = length
  2979. Note:    copies the local net address associated with the handle into the buffer
  2980. --------G-6006-------------------------------
  2981. INT 60 - MDEBUG - GET PASSWORD STATUS
  2982.     AH = 06h
  2983. Return: AL = status
  2984.         00h password inactive
  2985.         01h password active
  2986. --------N-6007-------------------------------
  2987. INT 60 - FTP Packet Driver - BASIC FUNC - RESET INTERFACE
  2988.     AH = 07h
  2989.     BX = handle (optional for v1.10+)
  2990. Return: CF set on error
  2991.         DH = error code (see #03305)
  2992.     CF clear if successful
  2993. --------G-6007-------------------------------
  2994. INT 60 - MDEBUG v1.70+ - GET ACTIVE PART OF MDEBUG
  2995.     AH = 07h
  2996. Return: AL = active part for the next popup session of MDEBUG:
  2997.         bit 0: the next popup session will start in the interpreter rather
  2998.           than in the monitor
  2999.         bit 1: the next popup session will sart in the online-help
  3000. SeeAlso: AH=03h"MDEBUG",AH=04h"MDEBUG"
  3001. --------G-6008-------------------------------
  3002. INT 60 - MDEBUG - UNUSED
  3003.     AH = 08h-FFh
  3004. Return: AX = FFFCh
  3005. --------N-600A-------------------------------
  3006. INT 60 - FTP Packet Driver 1.09+ - HIGH-PERF FUNC - GET PARAMETERS
  3007.     AH = 0Ah
  3008. Return: CF set on error
  3009.         DH = error code (0Bh) (see #03305)
  3010.     CF clear if successful
  3011.         ES:DI -> parameter table (see #03310)
  3012.  
  3013. Format of packet driver parameter table:
  3014. Offset    Size    Description    (Table 03310)
  3015.  00h    BYTE    major revision of packet driver spec driver conforms to
  3016.  01h    BYTE    minor revision of packet driver spec
  3017.  02h    BYTE    length of this structure in bytes
  3018.  03h    BYTE    length of a MAC-layer address
  3019.  04h    WORD    maximum transfer unit, including MAC headers
  3020.  06h    WORD    buffer size for multicast addr
  3021.  08h    WORD    number of receive buffers (one less than back-to-back MTU rcvs)
  3022.  0Ah    WORD    number of transmit buffers
  3023.  0Ch    WORD    interrupt number to hook for post-EOI processing, 00h=none
  3024. --------N-600B-------------------------------
  3025. INT 60 - FTP Packet Driver 1.09 - HIGH-PERF FUNC - ASYNCHRONOUS SEND PACKET
  3026.     AH = 0Bh
  3027.     DS:SI -> buffer
  3028.     CX = length of buffer
  3029.     ES:DI -> FAR function to call when buffer becomes available (see #03311)
  3030. Return: CF set on error
  3031.         DH = error code (0Bh,0Ch) (see #03305)
  3032.     CF clear if successful
  3033. Notes:    unlike function 04h, the buffer is not available for modification as
  3034.       soon as the call returns; the buffer may be queued by the driver and
  3035.       not processed until later
  3036.     this function has been dropped from v1.10+ of the specification and
  3037.       replaced by function 0Ch
  3038. SeeAlso: AH=04h"Packet Driver",AH=0Ch"Packet Driver"
  3039.  
  3040. (Table 03311)
  3041. Values packet driver completion function is called with:
  3042.     AX = result
  3043.         00h copy OK
  3044.         nonzero error
  3045.     ES:DI -> buffer passed to INT 60/AH=0Bh call
  3046. --------N-600C-------------------------------
  3047. INT 60 - FTP Packet Driver 1.10+ - HIGH-PERF FUNC - ASYNCHRONOUS SEND PACKET
  3048.     AH = 0Ch
  3049.     ES:DI -> pointer to IOCB (see #03312)
  3050. Return: CF set on error
  3051.         DH = error code (see #03305)
  3052.     CF clear if successful
  3053. SeeAlso: AH=04h"Packet Driver",AH=0Bh"Packet Driver"
  3054.  
  3055. Format of packet driver IOCB:
  3056. Offset    Size    Description    (Table 03312)
  3057.  00h    DWORD    pointer to buffer
  3058.  04h    WORD    length of buffer
  3059.  06h    BYTE    flags
  3060.         bit 0: packet driver is finished with IOCB
  3061.         bit 1: application requests upcall when driver completes
  3062.  07h    DWORD    function address for upcall (see #03313)
  3063.  0Bh  4 BYTEs    future gather write
  3064.  0Fh    BYTE    ???
  3065.  10h  8 BYTEs    private driver workspace
  3066.  
  3067. (Table 03313)
  3068. Values completion function is called with:
  3069.     ES:DI -> IOCB passed to INT 60/AH=0Ch
  3070. --------N-600C-------------------------------
  3071. INT 60 - Banyan VINES, 3com - GET STATION ADDRESS
  3072.     AH = 0Ch
  3073. Return: AL = status
  3074.         00h successful
  3075.         ES:SI -> 6-byte station address
  3076.         02h semaphore service is unavailable
  3077. --------N-600D-------------------------------
  3078. INT 60 - FTP Packet Driver 1.10+ - HIGH-PERF FUNC - DROP PACKET FROM QUEUE
  3079.     AH = 0Dh
  3080.     ES:DI -> IOCB
  3081. Return: CF set on error
  3082.         DH = error code (see #03305)
  3083.     CF clear if successful
  3084. SeeAlso: AH=0Ch"Packet Driver"
  3085. --------N-6011-------------------------------
  3086. INT 60 - 3com, 10NET, Banyan VINES - LOCK AND WAIT
  3087.     AH = 11h
  3088.     AL = drive number or 0
  3089.     DX = number of seconds to wait
  3090.     ES:SI = Ethernet address or 0
  3091.     DS:BX -> 31-byte ASCIZ semaphore name
  3092. Return: AL = status (see #03314)
  3093. SeeAlso: AH=12h,AH=13h
  3094.  
  3095. (Table 03314)
  3096. Values for 3com semaphore status:
  3097.  00h    successful
  3098.  01h    timeout
  3099.  02h    server not responding
  3100.  03h    invalid semaphore name
  3101.  04h    semaphore list is full
  3102.  05h    invalid drive ID
  3103.  06h    invalid Ethernet address
  3104.  07h    not logged in
  3105.  08h    write to network failed
  3106.  09h    semaphore already logged for this CPU
  3107. --------N-6012-------------------------------
  3108. INT 60 - 3com, 10NET, Banyan VINES - LOCK
  3109.     AH = 12h
  3110.     AL = drive number or 00h
  3111.     ES:SI = Ethernet address or 0000h:0000h
  3112.     DS:BX -> 31-byte ASCIZ semaphore name
  3113. Return: AL = status (see also #03314)
  3114.         01h semaphore currently locked by another PC
  3115. Note:    unlike function 11h, this function returns immediately
  3116. SeeAlso: AH=11h,AH=13h
  3117. --------N-6013-------------------------------
  3118. INT 60 - 3com, 10NET, Banyan VINES - UNLOCK
  3119.     AH = 13h
  3120.     AL = drive number or 00h
  3121.     ES:SI = Ethernet address or 0000h:0000h
  3122.     DS:BX -> 31-byte ASCIZ semaphore name
  3123. Return: AL = status (see also #03314)
  3124.         01h semaphore not locked
  3125. SeeAlso: AH=11h,AH=12h
  3126. --------N-6014-------------------------------
  3127. INT 60 - FTP Packet Driver - EXTENDED FUNC - SET RECEIVE MODE
  3128.     AH = 14h
  3129.     BX = handle (optional for v1.10+)
  3130.     CX = mode (see #03315)
  3131. Return: CF set on error
  3132.        DH = error code (01h,08h) (see #03305)
  3133.     CF clear if successful
  3134. SeeAlso: AH=15h
  3135.  
  3136. (Table 03315)
  3137. Values for packet driver receive mode:
  3138.  01h    turn off receiver
  3139.  02h    receive only packets sent to this interface
  3140.  03h    mode 2 plus broadcast packets
  3141.  04h    mode 3 plus limited multicast packets
  3142.  05h    mode 3 plus all multicast packets
  3143.  06h    all packets
  3144.  07h    raw mode for serial line only (v1.10+)
  3145. --------N-6015-------------------------------
  3146. INT 60 - FTP Packet Driver - EXTENDED FUNC - GET RECEIVE MODE
  3147.     AH = 15h
  3148.     BX = handle (optional for v1.10+)
  3149. Return: CF set on error
  3150.         DH = error code (01h) (see #03305)
  3151.     CF clear if successful
  3152.         AX = receive mode (see #03315)
  3153. SeeAlso: AH=14h
  3154. --------N-6016-------------------------------
  3155. INT 60 - FTP Packet Driver - EXTENDED FUNC - SET MULTICAST LIST
  3156.     AH = 16h
  3157.     ES:DI -> multicast list
  3158.     CX = length of list in bytes
  3159. Return: CF set on error
  3160.         DH = error code (06h,09h,0Eh) (see #03305)
  3161.     CF clear if successful
  3162. SeeAlso: AH=17h
  3163. --------N-6017-------------------------------
  3164. INT 60 - FTP Packet Driver - EXTENDED FUNC - GET MULTICAST LIST
  3165.     AH = 17h
  3166. Return: CF set on error
  3167.         DH = error code (06h,09h) (see #03305 at AX=01FFh)
  3168.     CF clear if successful
  3169.         ES:DI -> multicast addresses (do not modify)
  3170.         CX = bytes of multicast addresses currently in use
  3171. SeeAlso: AH=16h
  3172. --------N-6018-------------------------------
  3173. INT 60 - FTP Packet Driver - EXTENDED FUNC - GET STATISTICS
  3174.     AH = 18h
  3175.     BX = handle (optional for v1.10+)
  3176. Return: CF set on error
  3177.         DH = error code (01h) (see #03305)
  3178.     CF clear if successful
  3179.         DS:SI -> statistics (see #03316)
  3180.  
  3181. Format of packet driver statistics:
  3182. Offset    Size    Description    (Table 03316)
  3183.  00h    DWORD    packets in
  3184.  04h    DWORD    packets out
  3185.  08h    DWORD    bytes in
  3186.  0Ch    DWORD    bytes out
  3187.  10h    DWORD    errors in
  3188.  14h    DWORD    errors out
  3189.  18h    DWORD    packets dropped
  3190. --------N-6019-------------------------------
  3191. INT 60 - FTP Packet Driver - EXTENDED FUNC - SET NETWORK ADDRESS
  3192.     AH = 19h
  3193.     ES:DI -> address
  3194.     CX = length of address
  3195. Return: CF set on error
  3196.         DH = error code (0Dh,0Eh) (see #03305)
  3197.     CF clear if successful
  3198.         CX = length
  3199. --------N-601A-------------------------------
  3200. INT 60 - FTP Packet Driver v1.10+ - EXTENDED FUNC - SEND RAW BYTES
  3201.     AH = 1Ah
  3202.     DS:SI -> buffer
  3203.     CX = length of buffer
  3204. Return: CF set on error
  3205.         DH = error code (see #03305 at AX=01FFh)
  3206.     CF clear if successful
  3207. SeeAlso: AH=1Ch
  3208. --------N-601B-------------------------------
  3209. INT 60 - FTP Packet Driver v1.10+ - EXTENDED FUNC - FLUSH RAW BYTES RECEIVED
  3210.     AH = 1Bh
  3211. Return: CF set on error
  3212.         DH = error code (see #03305)
  3213.     CF clear if successful
  3214. SeeAlso: AH=1Ch
  3215. --------N-601C-------------------------------
  3216. INT 60 - FTP Packet Driver v1.10+ - EXTENDED FUNC - FETCH RAW BYTES RECEIVED
  3217.     AH = 1Ch
  3218.     DS:SI -> buffer
  3219.     CX = length of buffer
  3220.     DX = timeout in clock ticks
  3221. Return: CF set on error
  3222.         DH = error code (see #03305 at AX=01FFh)
  3223.     CF clear if successful
  3224.         CX = number of bytes transferred to buffer
  3225. SeeAlso: AH=1Ah,AH=1Bh
  3226. ----------60899B-----------------------------
  3227. INT 60 U - Agfa TTSR.EXE - API
  3228.     AX = 899Bh
  3229.     BX = function
  3230.         0001h installation check
  3231.         Return: BX = 899Bh if installed
  3232.         0002h ???
  3233.         0003h ???
  3234.     ???
  3235. Return: ???
  3236. Note:    TTSR.EXE is found in FotoLook 2.09 (16-bit), which is available from
  3237.       agfa.com; it appears to provide DOS ASPI support
  3238. !!!
  3239. --------a-60AD-------------------------------
  3240. INT 60 - AccessDOS - API
  3241.     AH = ADh
  3242.     AL = function
  3243.         E1h ???
  3244.         Return: AX = ???
  3245.         E2h get configuration
  3246.         Return: BX:AX -> configuration data
  3247. Program: AccessDOS is a public domain TSR developed at The Trace Research and
  3248.       Development Center which provides extensions for keyboard, mouse,
  3249.       and sound access by the visually, hearing, or motor-control
  3250.       impaired.
  3251. InstallCheck:    test for the signature "ACCESSv1.00" beginning three bytes
  3252.       past the start of the interrupt handler (this same signature is also
  3253.       present in v1.10)
  3254. Range:    INT 60 to INT 66, selected by scanning for 0000h:0000h vector
  3255. --------N-60E9-------------------------------
  3256. INT 60 - FTP Packet Driver - Crynwr Software - AUTOSELECT TRANSCEIVER
  3257.     AH = E9h
  3258.     ???
  3259. Return: ???
  3260. --------*-61---------------------------------
  3261. INT 61 - reserved for user interrupt
  3262. --------b-61---------------------------------
  3263. INT 61 - Atari Portfolio - EXTENDED BIOS
  3264. Desc:    provides subfunctions such as turning off the machine, accessing
  3265.       internal variables, and mapping memory cards
  3266. SeeAlso: INT 60"Atari",AH=00h"Portfolio",AH=08h"Portfolio",AH=0Dh"Portfolio"
  3267. SeeAlso: AH=11h"Portfolio",AH=15h"Portfolio",AH=19h"Portfolio"
  3268. SeeAlso: AH=1Bh"Portfolio",AH=24h"Portfolio",AH=2Ch"Portfolio"
  3269. SeeAlso: AH=30h"Portfolio"
  3270. --------b-61---------------------------------
  3271. INT 61 - TI Professional PC - FACTORY ROM DATA AREA POINTER (NOT A VECTOR!)
  3272. Desc:    the low word of this vector contains the segment of the RAM data area
  3273.       to be used by the expansion ROM at F400h:0000h, and the high word
  3274.       contains the length of the data area; this segment and size are
  3275.       both set to 0000h if no ROM is installed at F400h:0000h
  3276. SeeAlso: INT 60"TI Professional PC",INT 62"TI Professional"
  3277. SeeAlso: INT 66"TI Professional PC"
  3278. --------b-61---------------------------------
  3279. INT 61 - HP 95LX System Manager - LOAD DS
  3280. SeeAlso: INT 0F"HP 95LX",INT 60/DI=0102h"HP 95LX"
  3281. --------r-61---------------------------------
  3282. INT 61 - JPI TopSPEED Modula-2 v1 - PROCEDURE EXIT TRAP
  3283. SeeAlso: INT 60"JPI"
  3284. --------d-61---------------------------------
  3285. INT 61 - Adaptec and OMTI controllers - DRIVE 0 DATA
  3286. Desc:    this vector stores the second four bytes of the parameter table for
  3287.       hard disk 0
  3288. SeeAlso: INT 60"Adaptec",INT 62"Adaptec",INT 63"Adaptec"
  3289. --------I-61---------------------------------
  3290. INT 61 - Sangoma CCIP (CCPOP 3270 resident module) INTERFACE
  3291.     BX:DX -> control block
  3292. SeeAlso: INT 67"Sangoma"
  3293. --------v-61---------------------------------
  3294. INT 61 - VIRUS - "SEMTEX"/"Screen Trasher" - INT 21h SUBSTITUTE
  3295. Note:    the virus copies the original INT 21h vector into INT 61h
  3296. SeeAlso: INT 21/AH=00h,INT 21/AH=25h,INT 60"VIRUS",INT 6B"VIRUS"
  3297. --------U-61---------------------------------
  3298. INT 61 - PC-Magazin - PAGE, SWAPx
  3299.     details not yet available
  3300. Program: PAGE and SWAPx are utilities from PC-Magazin, the German edition of
  3301.       PC Magazine, issue 47/85, page 31
  3302. SeeAlso: INT 66"INCA"
  3303. --------N-61---------------------------------
  3304. INT 61 - TCPOpen kernel - API
  3305.     ES:BX -> request packet (see #03317)
  3306. Program: TCPOpen is a TCP/IP protocol stack by Lanera
  3307. Range:    INT 60 to INT 7F, selected by configuration file
  3308. Note:    there does not appear to be an installation check, though function
  3309.       FFFFh can be used to verify that the software is indeed functioning
  3310.  
  3311. Format of TCPOpen request packet:
  3312. Offset    Size    Description    (Table 03317)
  3313.  00h  8 BYTEs    ???
  3314.  08h    WORD    function number (0000h-001Ah or FFF9h-FFFFh)
  3315.  0Ah    WORD    ???
  3316.  0Ch  2 BYTEs    ???
  3317.  0Eh    WORD    (ret) return code
  3318.  10h  2 BYTEs    ???
  3319.  12h    WORD    ???
  3320.  14h    WORD    (ret) 0001h if requested function complete
  3321.  16h    WORD    (ret) ???
  3322.  18h  6 BYTEs    ???
  3323.  1Eh    DWORD    -> ???
  3324.  22h    WORD    ??? or 0000h
  3325.  24h    WORD    (ret) ???
  3326. SeeAlso: #03318
  3327.  
  3328. (Table 03318)
  3329. Call TCPOpen Function FFFFh: installation verification
  3330. Return: offset 10h = BEEFh
  3331.     offset 14h = 0001h
  3332.     offset 24h = ???
  3333. Index:    installation check;TCPOpen kernel
  3334. --------N-61---------------------------------
  3335. INT 61 - XFS v1.76 - XFSKRNL.EXE - API
  3336.     AX = function
  3337.         8000h installation check???
  3338.         Return: AX = 0000h
  3339.         8001h ???
  3340.         ES:DI -> DWORD ???
  3341.         Return: AX = status???
  3342.         8002h ???
  3343.         BX = ???
  3344.         CX = ???
  3345.         ES:DI -> ???
  3346.         Return: AX = status???
  3347.         8003h ???
  3348.         BX = ???
  3349.         CX = ???
  3350.         ES:DI -> ???
  3351.         Return: AX = status???
  3352.         8004h ???
  3353.         BX = ???
  3354.         Return: AX = status???
  3355.         8005h wait until ???
  3356.         Return: DX:AX = ???
  3357.         8006h get ???
  3358.         Return: DX:AX -> ??? record
  3359.         8007h set IP address??? (or htonl/ntohl)
  3360.         DX:BX = IP address???
  3361.         Return: DX:AX = byte-swapped IP address
  3362.         8008h set IP address??? (or htonl/ntohl)
  3363.         DX:AX = IP address???
  3364.         Return: DX:AX = byte-swapped IP address
  3365.         8009h ???
  3366.         ES:DI -> ???
  3367.         Return: DX:AX = ???
  3368.         800Ah ???
  3369.         800Bh ???
  3370.         Return: DX:AX = ???
  3371.         800Ch ???
  3372.         800Dh ???
  3373.         800Eh ???
  3374.         800Fh ???
  3375.         8010h get ??? record
  3376.         Return: DX:AX -> ??? record
  3377.         8011h ???
  3378.         8012h ???
  3379.         BX = ???
  3380.         Return: DX:AX = ???
  3381.         8013h get ??? record
  3382.         Return: DX:AX -> ??? record
  3383.         8014h ???
  3384.         ES:DI -> ???
  3385.         Return: nothing
  3386.         8015h get ??? record
  3387.         Return: DX:AX -> 8-byte ??? record
  3388.         8016h get ??? record
  3389.         Return: DX:AX -> 6-byte ??? record
  3390.         8017h ???
  3391.         ES:DI -> ???
  3392.         Return: DX:AX = ???
  3393.         8018h get ??? record
  3394.         Return: DX:AX -> ??? record
  3395.         8019h get ??? record
  3396.         Return: DX:AX -> 14-byte ??? record
  3397.         801Ah get ??? record
  3398.         Return: DX:AX -> ??? record (max 98 bytes)
  3399.         801Bh get ??? record
  3400.         Return: DX:AX -> ??? record
  3401.         801Ch ???
  3402.         Return: nothing
  3403.         801Dh get ???
  3404.         Return: AL = ???
  3405.         801Eh ???
  3406.         Return: AX = ???
  3407.         801Fh uninstall
  3408.         Return: AX = status
  3409.                 0000h successful
  3410.                 other interrupt which could not be released
  3411.     AX = other
  3412.         Return: AX:BX = ??? (0000h:0000h by default)
  3413. Program: XFS is a shareware Network File System client by Robert Juhasz
  3414. Range:    INT 60 to INT 65, selected by scanning for two consecutive free
  3415.       vectors and hooking the first
  3416. SeeAlso: INT 62"XFS"
  3417. --------N-61---------------------------------
  3418. INT 61 - FTP Software PC/TCP - TCP/IP TSR System Call interface
  3419.     AH = system call number (also see entries below)
  3420.         01h "pkt_alloc" (v2.05; this is "net_config" in v2.1+)
  3421.         02h "pkt_free" (v2.05; this is "get_kernel_info" in v2.1+)
  3422. Return: CF clear if successful
  3423.     CF set on error
  3424.         AL = basic error (see #03319)
  3425.         AH = suberror number (see #03320,#03321)
  3426. InstallCheck:    test for the signature "TCPTSR" three bytes beyond the start
  3427.       of the interrupt handler
  3428. Range:    INT 20h to INT E0h, selected by configuration
  3429. BUG:    the SLIP kernel for v2.05 bounds-checks the wrong register, so values
  3430.       greater than 54h in AH may crash the system.    Other kernels may have
  3431.       this bug as well.
  3432. SeeAlso: INT 61/AH=00h"PC/TCP",INT 61/AH=2Ah,INT 61/AH=54h
  3433. Index:    installation check;PC/TCP
  3434.  
  3435. (Table 03319)
  3436. Values for PC/TCP error code:
  3437.  00h "NET_NOERR" successful
  3438.  01h "NET_ERR_INUSE" protocol or socket already in use
  3439.  02h "NET_DOS_ERR" MS-DOS error (returned as suberror code in AH)
  3440.  03h "NET_ERR_NOMEM" out of memory
  3441.  04h "NET_ERR_NOTNETCONN" not a network descriptor
  3442.  05h "NET_ERR_ILLEGALOP" invalid operation on given kind of network descriptor
  3443.  06h "NET_ERR_BADPKT" illegal or corrupted packet
  3444.  07h "NET_ERR_NOHOST" no host bound to specified connection
  3445.  08h "NET_ERR_CANTOPEN" unable to open file
  3446.  09h "NET_ERR_NET_UNREACHABLE" network is unreachable
  3447.  0Ah "NET_ERR_HOST_UNREACHABLE" host is unreachable (see #03320)
  3448.  0Bh "NET_ERR_PROT_UNREACHABLE" protocol is unreachable
  3449.  0Ch "NET_ERR_PORT_UNREACHABLE" port is unreachable
  3450.  0Dh "NET_ERR_TIMEOUT" operation timed out
  3451.  0Eh "NET_ERR_HOSTUNKNOWN" unable to resolve host name
  3452.  0Fh "NET_ERR_NOSERVERS" no name servers configured
  3453.  10h "NET_ERR_SERVER_ERR" bad reply from name server
  3454.     Subcodes: 0= no error, 1 = Host unreachable
  3455.  11h "NET_ERR_BADFORMAT" bad format for IP address or field in IP address
  3456.             structure is zero
  3457.  12h "NET_ERR_BADARG" invalid argument
  3458.  13h "NET_ERR_EOF" foreign host closed its end of connection
  3459.  14h "NET_ERR_RESET" connection has been reset
  3460.  15h "NET_ERR_WOULDBLOCK" recv() call was done on a non-blocking connection
  3461.             with no data available
  3462.  16h "NET_ERR_UNBOUND" insufficient resources to do operation
  3463.  17h "NET_ERR_NODESC" could not allocate network descriptor
  3464.  18h "NET_ERR_BADSYSCALL" invalid/unsupported kernel call
  3465.  19h "NET_ERR_CANTBROADCAST" unable to broadcast
  3466.  1Ah "NET_ERR_NOTESTAB" operation illegal because connection not established
  3467.  1Bh kernel busy, try again later
  3468.  1Ch "NET_ERR_ICMPMESG" an ICMP message was received (not on streams)
  3469.     (see #03321)
  3470. ---v2.1+---
  3471.  1Dh "NET_ERR_TERMINATING" internal kernel fatal error
  3472.  1Eh "NET_ERR_TAG_LOCKED" not allowed to set this tag (net_config)
  3473.  1Fh "NET_ERR_BAD_INTERFACE" non existent interface specified
  3474.  20h "NET_ERR_BADCONFIG" kernel cannot run - bad configuration
  3475.  21h "NET_ERR_EMM" expanded memory error
  3476.  22h "NET_ERR_CANT_SHUTDOWN" cant unload kernel (multitasker running)
  3477.  23h "NET_ERR_PARKED_IN" unable to unhook DOS interrupt
  3478.  24h "NET_ERR_NOQIOS" ran out of resources; try again later
  3479.  25h "NET_ERR_WOULD_TRUNCATE" datagram too large and "don't truncate" was set
  3480.  
  3481. (Table 03320)
  3482. Values for subcodes of PC/TCP error 0Ah "NET_ERR_HOST_UNREACHABLE":
  3483.  00h    no error
  3484.  01h    host unreachable
  3485.  02h    ARP failed
  3486.  03h    hardware failure
  3487.  04h    link failure
  3488.  05h    no route
  3489.  06h    gateway down
  3490. SeeAlso: #03319,#03321
  3491.  
  3492. (Table 03321)
  3493. Values for subcodes of PC/TCP error 1Ch "NET_ERR_ICMPMESG":
  3494.  07h    unrecognised
  3495.  08h    can't fragment
  3496.  09h    srcr_fail
  3497.  0Ah    source quench
  3498.  0Bh    time exceeded
  3499.  0Ch    parameter problem
  3500.  0Dh    admin_prohib. see also code 0Ah
  3501. SeeAlso: #03319,#03320
  3502. --------N-6100-------------------------------
  3503. INT 61 U - PC/TCP kernel v2.05+ - GET DEBUG INFORMATION
  3504.     AH = 00h
  3505.     DS:SI -> 216-byte buffer for network debugging information (see #03322)
  3506. Return: CF clear
  3507.     AX = 0000h
  3508.     buffer filled
  3509. Notes:    this call is not documented by FTP, Inc. for any version
  3510.     most of the information returned by this call is available via the
  3511.       documented get_kernel_info or net_info commands.
  3512.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  3513. SeeAlso: INT 61"FTP Software",INT 61/AH=2Ah"PC/TCP"
  3514.  
  3515. Format of network debugging information:
  3516. Offset    Size    Description    (Table 03322)
  3517.  00h    DWORD    number of interrupts
  3518.  04h    DWORD    receive buffer low-water mark
  3519.  08h    DWORD    transmit buffer low-water mark
  3520.  0Ch    DWORD    number of packets received
  3521.  10h    DWORD    number of packets transmitted
  3522.  14h    DWORD    total receive errors
  3523.  18h    DWORD    total transmit errors
  3524.  1Ch  4 BYTEs    ???
  3525.  20h    DWORD    receive resets
  3526.  24h    DWORD    transmit resets
  3527.  28h    DWORD    number of "runts" received
  3528.  2Ch    DWORD    number of alignment errors on received packets
  3529.  30h    DWORD    number of CRC errors on received packets
  3530.  34h    DWORD    number of parity errors on received packets
  3531.  38h    DWORD    number of receive overflow errors
  3532.  3Ch    DWORD    number of oversized packets received
  3533.  40h    DWORD    number of packets lost due to lack of buffers
  3534.  44h    DWORD    receive timeouts
  3535.  48h 32 BYTEs    ???
  3536.  68h    DWORD    number of transmit collisions
  3537.  6Ch    DWORD    number of transmit timeouts
  3538.  70h    DWORD    number of transmit underflows
  3539.  74h    DWORD    number of lost "crs" on transmit
  3540.  78h    DWORD    number of times heartbeat failed on transmit
  3541.  7Ch 24 BYTEs    ???
  3542.  94h    WORD    free packet buffers
  3543.  96h    WORD    total packet buffers
  3544.  98h    WORD    minimum number of packet buffers free since kernel started
  3545.  9Ah 24 BYTEs    ???
  3546.  B2h    DWORD    pointer to TCP connection list???
  3547.  B6h    DWORD    pointer to IP routing table???
  3548.  BAh 30 BYTEs    ???
  3549. --------N-6100-------------------------------
  3550. INT 61 - Banyan VINES - CALL A SERVICE
  3551.     AH = 00h
  3552.     AL = service ID (1..16)
  3553.     other registers vary by service
  3554. Return: AX = status (see #03325)
  3555. Desc:    Calls an adapter driver or redirector service. The service handler
  3556.       pointers are stored at offset 0010h in the code segment of the
  3557.       BANV interrupt handler (see #03323).
  3558. Note:    Banyan can use any interrupt from 60h through 66h.  The Banyan
  3559.       interrupt handler is identified by the string "BANV" in the four
  3560.       bytes immediately preceding the interrupt handler
  3561. SeeAlso: AH=01h,AH=03h
  3562.  
  3563. Format of the BANV code segment (revision 5.53):
  3564. Offset    Size    Description    (Table 03323)
  3565.  00h 16    BYTEs    reserved
  3566.  10h 16    DWORDs    far pointers to the service handlers (0 = not installed)
  3567.  50h    DWORD    far pointer to last called service
  3568.  54h    WORD    VINES revision
  3569.  56h    DWORD    VINES revision long
  3570.  5Ah    WORD    VINES revision (lower bound)
  3571.  5Ch    DWORD    VINES revision (lower bound) long
  3572.  60h    WORD    VINES revision (upper bound)
  3573.  62h    DWORD    VINES revision (upper bound) long
  3574.  66h    WORD    end of PCCONFIG area
  3575.  68h    WORD    start of PCCONFIG area
  3576.  6Ah  4    BYTEs    BANV interrupt identifier ("BANV")
  3577.  6Eh  N    BYTEs    BANV interrupt service
  3578. SeeAlso: #03324
  3579. --------b-6100-------------------------------
  3580. INT 61 - Atari Portfolio - SERVICE INITIALIZATION
  3581.     AH = 00h
  3582. Return: nothing
  3583. Note:    applications using any Portfolio INT 61 calls should call this function
  3584.       exactly once at startup
  3585. SeeAlso: AH=07h"Portfolio",AH=09h"Portfolio",AH=0Dh"Portfolio"
  3586. SeeAlso: AH=11h"Portfolio",AH=15h"Portfolio",AH=19h"Portfolio"
  3587. SeeAlso: AH=1Bh"Portfolio",AH=24h"Portfolio",AH=2Ch"Portfolio"
  3588. SeeAlso: AH=30h"Portfolio"
  3589. --------V-610000-----------------------------
  3590. INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - ZOOM DISPLAY
  3591.     AX = 0000h
  3592.     BX = zoom factor (0-7)
  3593. Desc:    zooms the display based on the given zoom factor
  3594. Notes:    INT 61h is the default interrupt; the actual interrupt number can be
  3595.       obtained by calling INT 16/AH=FFh
  3596.     not all vendors include the Tseng TSR which supports these functions
  3597. SeeAlso: AX=0001h"OPTIMA",AX=0002h"OPTIMA",AX=0005h"OPTIMA"
  3598. SeeAlso: INT 16/AH=FFh"OPTIMA"
  3599. --------N-610001DS0001-----------------------
  3600. INT 61 - Banyan VINES - INTERNAL VINES SOCKET API (NEAR DATA)
  3601.     AX = 0001h
  3602.     DS = 0001h (to distinguish from alternate AX=0001h socket interface)
  3603.     CX:BX -> internal communications control block (see #03324)
  3604.     DX = caller's data segment
  3605. Return: AX = status
  3606.         0000h successful
  3607.         0099h invalid operation
  3608.         00A5h resource not available
  3609. Desc:    StreetTalk access with session handles
  3610. Range:    INT 60 to INT 66
  3611. Notes:    This service is handled by the adapter driver
  3612.     The request dispatch table contains dummy entries for subfunctions
  3613.       06h, 0Dh, 0Eh, 0Fh, 10h, and 11h, which always return error 0099h
  3614.       (invalid operation) in the request block's result buffer
  3615.     in recent VINES releases, this interface is superseded by the AX=000Fh
  3616.       interface, which allows FAR parameter block pointers (refer to that
  3617.       function's entries for more details on individual subfunctions)
  3618.     some adapter drivers (e.g. the NDIS2 token ring driver NDTOKBAN for
  3619.       VINES 5.53) ignore the value in CX and use the value from DX instead
  3620. SeeAlso: AX=000Fh
  3621.  
  3622. Format of internal communications control block:
  3623. Offset    Size    Description    (Table 03324)
  3624.  00h    WORD    subfunction number
  3625.  02h    WORD    magic number (FEFEh)
  3626.  04h    WORD    (ret) result, should be set to 0 before calling
  3627.  06h    WORD    reserved (will be set to client DS)
  3628.  08h    WORD    caller's code segment if function 000Bh, 0 else
  3629.  0Ah    WORD    pointer to parameter block
  3630.  0Ch    WORD    reserved (segment of parameter block; will be set to client DS)
  3631.  0Eh    WORD    StreetTalk handle
  3632. SeeAlso: #03323,#03444 at INT 61/AX=000Fh
  3633. --------N-610001SF0001-----------------------
  3634. INT 61 - Banyan VINES - "Sosock" - OPEN COMMUNICATIONS SOCKET
  3635.     AX = 0001h subfn 0001h
  3636.     DS:DX -> communications control block (function 0001h) (see #03326)
  3637. Return: AX = status (0000h-0002h,0098h,009Eh-00A2h) (see #03325)
  3638. Range:    INT 60h to INT 66h
  3639. Note:    The Banyan interrupt handler is identified by the string "BANV" in
  3640.       the four bytes immediately preceding the interrupt handler
  3641. SeeAlso: AX=0001h/SF=0002h,AX=0001h/SF=0008h,INT 15/AX=DE2Eh
  3642.  
  3643. (Table 03325)
  3644. Values for VINES status:
  3645.  0000h    successful
  3646.  0001h    service not installed
  3647.  0002h    invalid service ID
  3648.  0003h    invalid function
  3649.  0004h-000Ah reserved for BANV interface errors
  3650.  0097h    invalid socket identifier
  3651.  0098h    resource already in use
  3652.  009Bh    destination node unreachable
  3653.  009Ch    message overflow
  3654.  009Dh    destination socket nonexistent
  3655.  009Eh    address family does not exist
  3656.  009Fh    socket type does not exist
  3657.  00A0h    protocol does not exist
  3658.  00A1h    no more sockets available
  3659.  00A2h    no more buffer space available
  3660.  00A3h    timeout
  3661.  00A5h    resource not available
  3662.  00A6h    internal communication failure
  3663.  00B1h    resource disconnect
  3664.  
  3665. Format of VINES control block to open socket:
  3666. Offset    Size    Description    (Table 03326)
  3667.  00h    WORD    0001h
  3668.  02h    WORD    pointer to argument block
  3669.  04h    WORD    error return code
  3670.  06h  4 BYTEs    reserved
  3671. SeeAlso: #03327
  3672.  
  3673. Format of VINES argument block for opening socket:
  3674. Offset    Size    Description    (Table 03327)
  3675.  00h    WORD    pointer to 2-byte buffer for socket identifier
  3676.  02h    WORD    address family
  3677.         0003h Banyan
  3678.  04h    WORD    socket type
  3679.         in address family 0003h
  3680.             0001h IPC socket
  3681.             0002h SPP socket
  3682.  06h    WORD    protocol number
  3683.         FFFFh default
  3684.  08h    WORD    pointer to 16-byte buffer for socket address (see #03328)
  3685.  0Ah    WORD    local port number
  3686.         0000h if service should assign transient port number
  3687.         0001h to 01FFh well-known port number (assigned by Banyan)
  3688. SeeAlso: #03326
  3689.  
  3690. Format of Banyan VINES IPC port:
  3691. Offset    Size    Description    (Table 03328)
  3692.  00h    WORD    address family (always 0003h for Banyan ports)
  3693.  04h  4 BYTEs    network number (server's serial number)
  3694.  06h    WORD    subnet number  (0001h = server, 8000h-FFFEh = PC)
  3695.  08h    WORD    port ID (0001h-01FFh for "well-known" ports)
  3696.  0Ah    BYTE    hop count
  3697.  0Bh  5 BYTEs    filler
  3698. SeeAlso: #03333
  3699. --------N-610001SF0002-----------------------
  3700. INT 61 - Banyan VINES - "Sosend" - INITIATE OUTPUT EVENT
  3701.     AX = 0001h subfn 0002h
  3702.     DS:DX -> communications control block (function 0002h) (see #03329)
  3703. Return: AX = status (0000h-0002h,0097h,009Bh-009Dh,00A2h,00A3h,00B1h)
  3704.         (see #03325)
  3705. Range:    INT 60h to INT 66h
  3706. Note:    The Banyan interrupt handler is identified by the string "BANV" in
  3707.       the four bytes immediately preceding the interrupt handler
  3708. SeeAlso: AX=0001h/SF=0001h,AX=0001h/SF=0005h
  3709.  
  3710. Format of VINES control block for subfunction 0002h:
  3711. Offset    Size    Description    (Table 03329)
  3712.  00h    WORD    0002h
  3713.  02h    WORD    pointer to argument block (see #03330)
  3714.  04h    WORD    error return code (0000h,0097h,00A2h,00A3h,00A5h,00A6h,00B1h)
  3715.         (see #03325)
  3716.  06h  4 BYTEs    reserved
  3717. SeeAlso: #03334
  3718.  
  3719. Format of VINES argument block for subfunction 0002h:
  3720. Offset    Size    Description    (Table 03330)
  3721.  00h    WORD    routine metric
  3722.  02h    WORD    error return code
  3723.  04h    WORD    socket identifier
  3724.  06h    WORD    pointer to send buffer (see #03332)
  3725.  08h    WORD    length of send buffer
  3726.  0Ah    WORD    message request flags (see #03331)
  3727.  0Ch 16 BYTEs    socket address (see #03333)
  3728.  1Ch    WORD    timeout value in multiples of 200ms
  3729.  1Eh    WORD    connection identifier
  3730.  20h    WORD    type of request
  3731.         0001h send message
  3732.         0002h establish a virtual connection
  3733.         0003h terminate a virtual connection
  3734. SeeAlso: #03329,#03335
  3735.  
  3736. Bitfields for message request flags:
  3737. Bit(s)    Description    (Table 03331)
  3738.  0    async request
  3739.  1    reliable message
  3740.  2    flush receive buffer on overflow
  3741.  3    end of user message received
  3742.  4    vectored request (if set, send buffer contains buffer descriptors)
  3743.  5    connection-specific receive
  3744.  6    change to connection-specific receive mode
  3745. SeeAlso: #03330,#03335
  3746.  
  3747. Format of buffer descriptor:
  3748. Offset    Size    Description    (Table 03332)
  3749.  00h    WORD    data segment
  3750.  02h    WORD    buffer pointer
  3751.  04h    WORD    buffer length
  3752.  06h    WORD    character count
  3753. SeeAlso: #03330
  3754.  
  3755. Format of VINES socket address for unreliable datagrams:
  3756. Offset    Size    Description    (Table 03333)
  3757.  00h    WORD    0003h      address family
  3758.  02h    DWORD    FFFFFFFFh network number
  3759.  06h    WORD    FFFFh      subnet number
  3760.  08h    WORD          local port number
  3761.  0Ah    BYTE    00h-0Fh      hop count
  3762.  0Bh  5 BYTEs    0000h      filler
  3763. SeeAlso: #03328
  3764. --------N-610001SF0003-----------------------
  3765. INT 61 - Banyan VINES - "Sorec" - RECEIVE INPUT EVENT NOTIFICATION
  3766.     AX = 0001h subfn 0003h
  3767.     DS:DX -> communications control block (function 0003h) (see #03334)
  3768. Return: AX = status (00-0Ah,97h,A2h,A3h) (see #03325)
  3769. Range:    INT 60h to INT 66h
  3770. Note:    The Banyan interrupt handler is identified by the string "BANV" in
  3771.       the four bytes immediately preceding the interrupt handler
  3772. SeeAlso: AX=0001h/SF=0002h
  3773.  
  3774. Format of VINES control block for subfunction 0003h:
  3775. Offset    Size    Description    (Table 03334)
  3776.  00h    WORD    0003h
  3777.  02h    WORD    pointer to argument block (see #03335)
  3778.  04h    WORD    error return code (0000h,0097h,00A2h,00A3h,00A5h,00A6h,00B1h)
  3779.         (see #03325)
  3780.  06h  4 BYTEs    reserved
  3781. SeeAlso: #03329,#03335,#03337
  3782.  
  3783. Format of VINES argument block for subfunction 0003h:
  3784. Offset    Size    Description    (Table 03335)
  3785.  00h    WORD    character count
  3786.  02h    WORD    error return code
  3787.  04h    WORD    socket identifier
  3788.  06h    WORD    pointer to receive buffer (see #03336)
  3789.  08h    WORD    length of receive buffer
  3790.  0Ah    WORD    message request flags (see #03331)
  3791.  0Ch 16 BYTEs    socket address (see #03328)
  3792.  1Ch    WORD    timeout value in multiples of 200ms
  3793.  1Eh    WORD    connection identifier
  3794.  20h    WORD    type of response
  3795.         0001h message received
  3796.         0002h virtual connection established
  3797.         0003h virtual connection terminated
  3798. SeeAlso: #03334,#03338
  3799.  
  3800. Format of buffer descriptor:
  3801. Offset    Size    Description    (Table 03336)
  3802.  00h    WORD    data segment
  3803.  02h    WORD    buffer pointer
  3804.  04h    WORD    buffer length
  3805.  06h    WORD    character count
  3806. SeeAlso: #03335
  3807. --------N-610001SF0004-----------------------
  3808. INT 61 - Banyan VINES - "Soclose" - CLOSE A SOCKET
  3809.     AX = 0001h subfn 0004h
  3810.     DS:DX -> communications control block (function 0004h) (see #03337)
  3811. Return: AX = status (0000h-000Ah,0097h) (see #03325)
  3812. Range:    INT 60h to INT 66h
  3813. Note:    The Banyan interrupt handler is identified by the string "BANV" in
  3814.       the four bytes immediately preceding the interrupt handler
  3815. SeeAlso: AX=0001h/SF=0001h,INT 15/AX=DE2Eh
  3816.  
  3817. Format of VINES control block to close socket:
  3818. Offset    Size    Description    (Table 03337)
  3819.  00h    WORD    0004h
  3820.  02h    WORD    pointer to argument block (see #03338)
  3821.  04h    WORD    error return code (see #03325)
  3822.  06h  4 BYTEs    reserved
  3823. SeeAlso: #03334,#03340
  3824.  
  3825. Format of VINES argument block for closing socket:
  3826. Offset    Size    Description    (Table 03338)
  3827.  00h    WORD    socket identifier
  3828. SeeAlso: #03335,#03337,#03341
  3829. --------N-610001SF0005-----------------------
  3830. INT 61 - Banyan VINES - "Sowait" - WAIT FOR ASYNCHRONOUS EVENT COMPLETION
  3831.     AX = 0001h subfn 0005h
  3832.     DS:DX -> communications control block (see #03340)
  3833. Return: AX = status (0000h-000Ah,00A2h,00A3h) (see #03339)
  3834. Desc:    returns results for all asynchronous operations invoked from the
  3835.       data segment used for this call
  3836. Range:    INT 60h to INT 66h
  3837. Notes:    The Banyan interrupt handler is identified by the string "BANV" in
  3838.       the four bytes immediately preceding the interrupt handler
  3839. SeeAlso: AX=0001h/SF=0002h,AX=0001h/SF=0009h
  3840.  
  3841. (Table 03339)
  3842. Values for VINES function status:
  3843.  0000h    successful
  3844.  0001h    service not installed
  3845.  0002h    invalid service ID
  3846.  0003h-000Ah reserved for BANV interface errors
  3847.  00A2h    no more buffer space available
  3848.  00A3h    timeout event
  3849.  
  3850. Format of VINES control block for subfunction 0005h:
  3851. Offset    Size    Description    (Table 03340)
  3852.  00h    WORD    0005h
  3853.  02h    WORD    pointer to argument block (see #03341)
  3854.  04h    WORD    error return code
  3855.  06h  4 BYTEs    reserved
  3856. SeeAlso: #03337,#03342
  3857.  
  3858. Format of VINES argument block for subfunction 0005h:
  3859. Offset    Size    Description    (Table 03341)
  3860.  00h    WORD    pointer to WORD event pointer
  3861.  02h    WORD    timeout in multiples of 200ms, FFFFh = infinite
  3862. SeeAlso: #03338,#03340
  3863. --------N-610001SF0008-----------------------
  3864. INT 61 - Banyan VINES - "Sosession" - REGISTER APPLICATION WITH COMM SERVICE
  3865.     AX = 0001h subfn 0008h
  3866.     DS:DX -> communications control block (function 0008h) (see #03342)
  3867. Return: AX = status
  3868.         0000h  successful
  3869.         00A2h  no more buffer space available
  3870. Range:    INT 60h to INT 66h
  3871. Note:    The Banyan interrupt handler is identified by the string "BANV" in
  3872.       the four bytes immediately preceding the interrupt handler
  3873. SeeAlso: AX=0001h/SF=0001h,AX=0001h/SF=0009h
  3874.  
  3875. Format of VINES control block for subfunction 0006h:
  3876. Offset    Size    Description    (Table 03342)
  3877.  00h    WORD    0008h
  3878.  02h    WORD    process type
  3879.         0001h transient process
  3880.         0002h resident process
  3881.  04h    WORD    error return code
  3882.  06h  4 BYTEs    reserved
  3883. SeeAlso: #03340,#03343
  3884. --------N-610001SF000B-----------------------
  3885. INT 61 - Banyan VINES - "Soint" - SET USER COMPLETION FUNCTION
  3886.     AX = 0001h subfn 000Bh
  3887.     DS:DX -> communications control block (function 000Bh) (see #03343)
  3888. Return: AX = status (00h-0Ah,A2h) (see #03339)
  3889. Range:    INT 60h to INT 66h
  3890. Note:    The Banyan interrupt handler is identified by the string "BANV" in
  3891.       the four bytes immediately preceding the interrupt handler
  3892. SeeAlso: AX=0001h/SF=0005h,AX=0001h/SF=0008h
  3893.  
  3894. Format of VINES control block for subfunction 000Bh:
  3895. Offset    Size    Description    (Table 03343)
  3896.  00h    WORD    000Bh
  3897.  02h    WORD    pointer to argument block (see #03344)
  3898.  04h    WORD    error return code (see #03325)
  3899.  06h  2 BYTEs    reserved
  3900.  08h    WORD    user CS register
  3901. SeeAlso: #03342
  3902.  
  3903. Format of VINES argument block for subfunction 000Bh:
  3904. Offset    Size    Description    (Table 03344)
  3905.  00h    WORD    pointer to user interrupt function (see #03345)
  3906.  02h    WORD    pointer to user stack
  3907.  04h    WORD    initial timeout value in multiples of 200ms, FFFFh = infinite
  3908. SeeAlso: #03344
  3909.  
  3910. (Table 03345)
  3911. Values FAR user function is invoked with:
  3912.     SS = DS = ES = segment of control block
  3913.     STACK:    DWORD    return address
  3914.         WORD    argument pointer (sosend or sorec argument block)
  3915.         WORD    error return code
  3916.             0000h argument pointer is valid
  3917.             00A3h timeout
  3918. --------V-610001-----------------------------
  3919. INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - CENTER ZOOM WINDOW
  3920.     AX = 0001h
  3921.     BX = X coordinate to center
  3922.     CX = Y coordinate to center
  3923. Desc:    Positions the zoom window such that the specified window-relative
  3924.       coordinates appear as close as possible to the center of the
  3925.       display.  Useful for scrolling and panning.
  3926. Range:    unknown
  3927. Notes:    INT 61h is the default interrupt; the actual interrupt number can be
  3928.       obtained by calling INT 16/AH=FFh
  3929.     not all vendors include the Tseng TSR which supports these functions
  3930. SeeAlso: AX=0000h"OPTIMA",AX=0002h"OPTIMA",AX=0005h"OPTIMA"
  3931. SeeAlso: INT 16/AH=FFh"OPTIMA"
  3932. --------I-610002-----------------------------
  3933. INT 61 - Banyan VINES - 3270 INTERFACE
  3934.     AX = 0002h
  3935.     BH = function number (see #03346)
  3936.     DS:CX -> argument block (except BH=00h,1Ah) (see #03348)
  3937. Return: AX = status (see #03347)
  3938. Notes:    Either 3270/SNA or 3270/BSC interface may use AX=0002h, depending on
  3939.       which is loaded first.  The other interface will use AX=000Ah
  3940.     Status codes greater than 63h indicate an inconsistency in the 3270/SNA
  3941.       or 3270/BSC resident driver, which must be reloaded by the user
  3942.  
  3943. (Table 03346)
  3944. Values for VINES 3270 interface function number:
  3945.  00h "pi2reset"     reset 3270/SNA or 3270/BSC driver
  3946.  02h "pi2bsc"     (3270/BSC only)
  3947.  03h "pi2get"     get information stored in 3270 resident driver
  3948.  04h "pi2put"     store information in 3270 resident driver
  3949.  05h "pi2gcur"     get current screen position
  3950.  07h "pi2sdat"     send data keystroke
  3951.  08h "pi2scom"     send command keystroke
  3952.  0Ah "pi2field"     get field info for arbitrary screen positions
  3953.  0Fh "pi2stat"     get logical unit/device status
  3954.  12h "pi2nlus"     determine logical unit/device assignment
  3955.  13h "pi2gate"     specifies comm port address to gateway service
  3956.  14h "pi2attach" attach a logical unit/device
  3957.  15h "pi2sdev"     save logical unit/device info in resident driver
  3958.         (not supported in >3.0)
  3959.  16h "pi2gdev"     get device information (not supported in >3.0)
  3960.  17h "pi2luinfo" get info about specific logical unit/device
  3961.  18h "pi2gerr"     get finer error detail
  3962.  19h "pi2dhold"     (3270/SNA only)  holds a 3270 device
  3963.  1Ah "pi2shut"     release memory-resident module
  3964.  1Ch "pi2sprof"     save profile info in res driver (not supp in >3.0)
  3965.  1Dh "pi2gprof"     get prevsly stored profile info (not supp in >3.0)
  3966.  
  3967. (Table 03347)
  3968. Values for VINES 3270 status:
  3969.  0000h    successful
  3970.  000Bh    invalid parameter or data does not fit data area
  3971.  000Ch    another code path currently active in resident driver
  3972.  000Dh    operation currently not allowed
  3973.  0032h    encountered connection disconnect error
  3974.  0033h    encountered "sosend" completion error
  3975.  0034h    encountered "sosend" communication error
  3976.  0035h    attach request refused.    extended error info via "pi2gerr":
  3977.     01h resource unavailable
  3978.     02h invalid type
  3979.     03h version mismatch
  3980.     04h invalid logical unit number
  3981.     05h error during ARL processing
  3982.     06h no access for user
  3983.  0071h    encountered "sosock" error
  3984.  0072h    encountered unrecognizable error
  3985.  0073h    encountered "sowait" error (extended info via "pi2gerr")
  3986.  0074h    encountered invalid type-of-request on "sowait"
  3987.  0075h    encountered "sorec" error (extended info via "pi2gerr")
  3988.  0076h    encountered "sorec" completion error (ext info via "pi2gerr")
  3989.  0077h    encountered connection request
  3990.  0078h    encountered unrecognizable data
  3991.  0079h    encountered unknown connection ID (ext info via "pi2gerr")
  3992. SeeAlso: #03325
  3993.  
  3994. Format of argument block for BH=03h,04h:
  3995. Offset    Size    Description    (Table 03348)
  3996.  00h    WORD    size of data area (max 256)
  3997.  02h  N BYTEs    data area
  3998. SeeAlso: #03349,#03350,#03351
  3999.  
  4000. Format of argument block for BH=05h:
  4001. Offset    Size    Description    (Table 03349)
  4002.  00h    WORD    logical unit/device number
  4003.  02h    WORD    pointer to WORD buffer for cursor index
  4004.  04h    WORD    pointer to BYTE buffer for current field attribute
  4005. SeeAlso: #03348,#03350,#03351
  4006.  
  4007. Format of argument block for BH=07h:
  4008. Offset    Size    Description    (Table 03350)
  4009.  00h    WORD    logical unit/device number
  4010.  02h    WORD    ASCII data byte
  4011.  04h    WORD    pointer to WORD count of characters which will need updating
  4012. SeeAlso: #03348,#03349,#03351
  4013.  
  4014. Format of argument block for BH=08h:
  4015. Offset    Size    Description    (Table 03351)
  4016.  00h    WORD    logical unit/device number
  4017.  02h    WORD    3270 keystroke (see #03352)
  4018. SeeAlso: #03348,#03349,#03350,#03353
  4019.  
  4020. (Table 03352)
  4021. Values for 3270 keystroke:
  4022.  0000h    Enter
  4023.  0001h    Clear
  4024.  0002h    PA1
  4025.  0003h    PA2
  4026.  0004h    PA3
  4027.  0005h    PF1
  4028.  ...
  4029.  001Ch    PF24
  4030.  001Dh    CSELECT (cursor select)
  4031.  001Eh    Insert
  4032.  001Fh    Delete
  4033.  0020h    EOField
  4034.  0021h    EINPUT (erase input)
  4035.  0022h    Reset
  4036.  0023h    Attention
  4037.  0024h    SysReq
  4038.  0025h    Duplicate
  4039.  0026h    Fieldmark
  4040.  0027h    Home
  4041.  0028h    NextLine
  4042.  0029h    Tab
  4043.  002Ah    BackTab
  4044.  002Bh    cursor up
  4045.  002Ch    cursor down
  4046.  002Dh    cursor right
  4047.  002Eh    cursor left
  4048.  002Fh    double cursor right
  4049.  0030h    double cursor left
  4050.  0031h    PRINT
  4051.  0032h    CANCEL
  4052.  0033h    Backspace
  4053.  
  4054. Format of argument block for BH=0Ah:
  4055. Offset    Size    Description    (Table 03353)
  4056.  00h    WORD    logical unit/device number
  4057.  02h    WORD    screen index
  4058.  04h    WORD    pointer to WORD buffer for field length
  4059.  06h    WORD    pointer to WORD buffer for offset in screen of field start
  4060. SeeAlso: #03351,#03354
  4061.  
  4062. Format of argument block for BH=0Fh:
  4063. Offset    Size    Description    (Table 03354)
  4064.  00h    WORD    logical unit/device number
  4065.  02h    WORD    clear mask (clear these bits of status after returning status)
  4066.  04h    WORD    pointer to WORD buffer for device status (see #03355)
  4067. SeeAlso: #03353,#03356
  4068.  
  4069. Bitfields for Banyan 3270 device status:
  4070. Bit(s)    Description    (Table 03355)
  4071.  10    status modified
  4072.  9    buffer modified
  4073.  8    set cursor
  4074.  5    sound alarm
  4075.  1-0    size of print line for printer logical units
  4076.     00  unformatted line
  4077.     01  40-character line
  4078.     10  64-character line
  4079.     11  80-character line
  4080.  
  4081. Format of argument block for BH=12h:
  4082. Offset    Size    Description    (Table 03356)
  4083.  00h    WORD    pointer to WORD buffer for number of logical units or devices
  4084.  02h    WORD    pointer to WORD buffer for version number
  4085.  04h    WORD    pointer to 64-byte buffer for logical unit/device list
  4086. SeeAlso: #03354,#03357
  4087.  
  4088. Format of argument block for BH=13h:
  4089. Offset    Size    Description    (Table 03357)
  4090.  00h 16 BYTEs    communications port address (see #03328)
  4091. SeeAlso: #03356,#03358
  4092.  
  4093. Format of argument block for BH=14h:
  4094. Offset    Size    Description    (Table 03358)
  4095.  00h    WORD    logical unit/device number
  4096.         0000h attach any free device of the specified type
  4097.  02h    WORD    logical unit/device type
  4098.         (3270/SNA) 01h, 02h, or 03h
  4099.         (3270/BSC) 02h display
  4100.         (3270/BSC) 03h printer
  4101.  04h    WORD    pointer to WORD buffer for attached logical unit/device number
  4102. SeeAlso: #03357,#03359
  4103.  
  4104. Format of argument block for BH=16h:
  4105. Offset    Size    Description    (Table 03359)
  4106.  00h    WORD    pointer to 18-byte buffer for device block (see #03364)
  4107.         first WORD must be set to desired logical unit/device number
  4108. SeeAlso: #03358,#03360
  4109.  
  4110. Format of argument block for BH=17h:
  4111. Offset    Size    Description    (Table 03360)
  4112.  00h    WORD    logical unit/device number
  4113.  02h    WORD    pointer to information block in caller's DS (see #03365)
  4114. SeeAlso: #03359,#03361
  4115.  
  4116. Format of argument block for BH=18h:
  4117. Offset    Size    Description    (Table 03361)
  4118.  00h    WORD    pointer to WORD buffer for major error code
  4119.  02h    WORD    pointer to WORD buffer for minor error code
  4120. SeeAlso: #03360,#03362
  4121.  
  4122. Format of argument block for BH=19h:
  4123. Offset    Size    Description    (Table 03362)
  4124.  00h    WORD    logical unit/device number
  4125. SeeAlso: #03361,#03363
  4126.  
  4127. Format of argument block for BH=1Ch,1Dh:
  4128. Offset    Size    Description    (Table 03363)
  4129.  00h    WORD    pointer to profile block in caller's DS (see #03368)
  4130. SeeAlso: #03348,#03362
  4131.  
  4132. Format of device block, argument block for BH=15h:
  4133. Offset    Size    Description    (Table 03364)
  4134.  00h    WORD    logical unit/device number
  4135.  02h    WORD    logical unit/device type
  4136.  04h    WORD    display model number
  4137.  06h    WORD    numeric checking
  4138.  08h    WORD    status line
  4139.  0Ah    BYTE    unprotected normal field attribute
  4140.  0Bh    BYTE    unprotected intensified field attribute
  4141.  0Ch    BYTE    protected normal field attribute
  4142.  0Dh    BYTE    protected intensified field attribute
  4143.  0Eh    WORD    reserved
  4144.  10h    WORD    printer port number
  4145.  
  4146. Format of information block:
  4147. Offset    Size    Description    (Table 03365)
  4148.  00h    WORD    device model number
  4149.  02h    DWORD    screen buffer pointer
  4150.  06h    DWORD    status line pointer (see #03366)
  4151.  0Ah    DWORD    reserved
  4152.  
  4153. Format of Banyan VINES 3270 status line:
  4154. Offset    Size    Description    (Table 03366)
  4155.  00h    BYTE    comm line status
  4156.         00h inactive
  4157.         01h active
  4158.  01h    BYTE    activation level
  4159.         01h physical unit activated
  4160.         02h logical unit also activated
  4161.         03h session is bound
  4162.  02h    BYTE    data traffic state
  4163.         00h inactive
  4164.         01h active
  4165.  03h    BYTE    screen ownership
  4166.         00h SLU->PLU session owns screen
  4167.         01h SLU->SSCP session owns screen
  4168.  04h    BYTE    keyboard status (see #03367)
  4169.  05h    BYTE    insert mode
  4170.         01h if in insert mode
  4171.  06h    BYTE    numeric
  4172.         01h if current screen buffer is numeric only
  4173.  07h    BYTE    printer status
  4174.         00h printer not assigned
  4175.         01h printer is inactive
  4176.         02h printer error
  4177.         03h currently printing
  4178.         04h printer is busy
  4179.         05h printer is very busy
  4180.  08h    BYTE    printer assignment
  4181.  09h    BYTE    maximum size of network name
  4182.  0Ah  N BYTEs    ASCIZ network name
  4183.     BYTE    maximum size of message window
  4184.       M BYTEs    null-terminated message window
  4185.     BYTE    code set
  4186.         00h EBCDIC
  4187.         01h ASCII
  4188.       M BYTEs    extended attributes
  4189.         01h extended attributes are in effect (stored at screen+1920)
  4190.             each extended attribute specifies
  4191.             bits 0,1: 00=normal, 01=blink, 10=reverse, 11=underscor
  4192.             bits 2-4: 000=default,001=blue,010=red,011=pink,
  4193.                   100=green,101=turquoise,110=yellow,111=white
  4194.     BYTE    extended color
  4195.         01h other than base color is in effect
  4196.  
  4197. (Table 03367)
  4198. Values for Banyan VINES 3270 keyboard status:
  4199.  00h    UNLOCK - ready to accept data
  4200.  01h    TIME - aid was struck
  4201.  02h    SYSTEM - received response no restore
  4202.  03h    FUNCTION - unavailable keyboard function
  4203.  04h    INPUT - not currently used
  4204.  05h    ENDFIELD - field filled in insert mode
  4205.  06h    PROTECTED - attempt to enter in protected field
  4206.  07h    NUMERIC - attempt to enter in numeric field
  4207.  08h    PROGRAM - error in outbound data stream
  4208.  
  4209. Format of Banyan VINES 3270 profile block:
  4210. Offset    Size    Description    (Table 03368)
  4211.  00h 64 BYTEs    gateway service name
  4212.  40h 16 BYTEs    gateway comm port address
  4213.  50h    WORD    primary logical unit number
  4214.  52h    WORD    secondary logical unit type
  4215.  54h    WORD    secondary logical unit number
  4216.  56h    WORD    printer assignment
  4217.  58h 50 BYTEs    keyboard definitions filename
  4218. --------V-610002-----------------------------
  4219. INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - END ZOOM
  4220.     AX = 0002h
  4221. Desc:    switches off zoom and returns window to its original state
  4222. Range:    unknown
  4223. Notes:    INT 61h is the default interrupt; the actual interrupt number can be
  4224.       obtained by calling INT 16/AH=FFh
  4225.     not all vendors include the Tseng TSR which supports these functions
  4226. SeeAlso: AX=0000h"OPTIMA",INT 16/AH=FFh"OPTIMA"
  4227. --------N-610003SF00-------------------------
  4228. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - INIT USER BUFFER PTR INFO
  4229.     AX = 0003h subfn 00h
  4230.     DS:BX -> argument block (see #03370)
  4231. Return: AX = status (see #03369)
  4232. SeeAlso: AX=0003h/SF=06h,AX=0003h/SF=08h,AX=0003h/SF=0Dh
  4233.  
  4234. (Table 03369)
  4235. Values for VINES function status:
  4236.  0000h    successful
  4237.  000Bh    invalid session ID
  4238.  000Ch    session not active
  4239.  000Dh    invalid request type
  4240.  000Eh    invalid parameters
  4241.  000Fh    out of heap space
  4242.  0010h    timeout on send
  4243.  0011h    Banyan communications error
  4244.  0012h    session not waiting for host
  4245.  0013h    session is active
  4246.  0014h    duplicate suspend session request
  4247.  0015h    no session suspended
  4248.  0016h    ring data buffer full
  4249.  0017h    printer error encountered
  4250.  0018h    Banyan communications error
  4251.  0019h    unable to make connection
  4252.  001Ah    no ring buffer specified at startup
  4253.  001Bh    service is down
  4254.  001Ch    invalid service name
  4255.  001Dh    service is closed
  4256.  001Eh    invalid connection name
  4257.  001Fh    max session limit reached for service
  4258.  0020h    access rights list for connection/dialout does not include this user
  4259.  0021h    service not responding
  4260.  0022h    missing telephone number
  4261. SeeAlso: #03325,#03373
  4262.  
  4263. Format of VINES argument block:
  4264. Offset    Size    Description    (Table 03370)
  4265.  00h    BYTE    session ID (00h)
  4266.  01h    BYTE    00h (func "initialize user buffer pointer information area")
  4267.  02h    WORD    -> user buffer ptr info area in caller's current DS (see #03371)
  4268.  
  4269. Format of user buffer ptr info area:
  4270. Offset    Size    Description    (Table 03371)
  4271.  00h    WORD    flags
  4272.         0000h don't read interface's data buffer
  4273.         0001h read data buffer
  4274.  02h    DWORD    pointer to ring buffer
  4275.  06h    WORD    length of ring buffer
  4276.  08h    WORD    ring buffer offset to last byte read by caller
  4277.  0Ah    DWORD    pointer to WORD containing offset of last byte
  4278.           in ring buffer filled
  4279.  0Eh    DWORD    pointer to screen buffer
  4280.  12h    DWORD    pointer to field containing cursor position
  4281.  16h    DWORD    pointer to terminal status area (see #03372)
  4282.  
  4283. Format of VINES terminal status area:
  4284. Offset    Size    Description    (Table 03372)
  4285.  00h    BYTE    status of session: 4Eh=oNline, 46h=oFfline, 57h=Waiting
  4286.  01h    BYTE    terminal type (00h=VT100, 01h=TTY, 02h=VT52, 03h=IBM3101)
  4287.  02h    BYTE    current keypad mode (VT100,VT52 only)
  4288.         4Eh ("N") numeric mode
  4289.         41h ("A") application mode
  4290.  03h  4 BYTEs    current state of LEDs (VT100 only)
  4291.         00h off
  4292.         01h on
  4293.  07h    WORD    line error count
  4294.  09h    WORD    primary error code (see #03373)
  4295.  0Bh    WORD    secondary error code
  4296.  
  4297. (Table 03373)
  4298. Values for VINES primary error code:
  4299.  0000h    no error
  4300.  0001h    unable to make connection
  4301.  0002h    communications error, restart session
  4302.  0003h    async terminal emulation service unavailable
  4303.  0004h    lost carrier
  4304.  0005h    all matching lines busy
  4305.  0006h    no lines defined for connection name
  4306.  0007h    no dial lines available on server
  4307.  0008h    no matching dial lines available
  4308.  0009h    out of heap space
  4309.  000Ah    service error encountered
  4310.  000Bh    timed out waiting to connect
  4311.  000Ch    communications error
  4312.  000Dh    communications error
  4313.  000Eh    host wants file transferred to/from PC
  4314.  000Fh    host software changed session parameter
  4315.  0010h    host software changed tap settings
  4316.  0011h    host software changed LED indicator
  4317.  0012h    host software changed display background (secondary error code 00h for
  4318.       white on black, 01h for black on white)
  4319.  0013h    host software changed display option (secondary error code 00h for off,
  4320.       01h for on)
  4321.  0014h    communications error
  4322.  0015h    communications error
  4323.  0016h    unable to make connection
  4324.  0017h    unable to make connection
  4325. SeeAlso: #03369
  4326. --------N-610003SF01-------------------------
  4327. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - SEND TO HOST
  4328.     AX = 0003h subfn 01h
  4329.     DS:BX -> argument block (see #03374)
  4330. Return: AX = status (see #03369)
  4331. SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=02h,AX=0003h/SF=14h
  4332.  
  4333. Format of VINES argument block for Function 0003h subfunction 01h:
  4334. Offset    Size    Description    (Table 03374)
  4335.  00h    BYTE    session ID (00h)
  4336.  01h    BYTE    01h (function "send to host")
  4337.  02h    BYTE    type
  4338.         00h ASCII byte
  4339.         01h ASCII string
  4340.         02h terminal function code
  4341.         03h up arrow
  4342.         04h down arrow
  4343.         05h left arrow
  4344.         06h right arrow
  4345.         07h break
  4346.  03h  N BYTEs    type-specific info (see #03375)
  4347.  
  4348. Format of type-specific info:
  4349. Offset    Size    Description    (Table 03375)
  4350. ---ASCII byte---
  4351.  03h    BYTE    byte to send to host
  4352. ---ASCII string---
  4353.  03h    WORD    length of string
  4354.  05h    WORD    pointer to string
  4355. ---terminal function code (VT52/VT100)---
  4356.  03h    BYTE    function code
  4357.         00h keypad 0
  4358.         01h keypad 1
  4359.         ...
  4360.         09h keypad 9
  4361.         0Ah keypad -
  4362.         0Bh keypad ,
  4363.         0Ch keypad .
  4364.         0Dh keypad ENTER
  4365.         0Eh PF1
  4366.         0Fh PF2
  4367.         10h PF3
  4368.         11h PF4
  4369. ---terminal function code (IBM3101)---
  4370.  03h    BYTE    function code
  4371.         00h PF1
  4372.         ...
  4373.         07h PF8
  4374.         08h Home
  4375. SeeAlso: #03374
  4376. --------N-610003SF02-------------------------
  4377. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - "CONTROL MONITOR"
  4378.     AX = 0003h subfn 02h
  4379.     DS:BX -> argument block (see #03376)
  4380. Return: AX = status (see #03369)
  4381. SeeAlso: AX=0003h/SF=03h,AX=0003h/SF=05h
  4382.  
  4383. Format of VINES argument block for Function 0003h subfunction 02h:
  4384. Offset    Size    Description    (Table 03376)
  4385.  00h    BYTE    session ID (00h)
  4386.  01h    BYTE    02h (function "control monitor")
  4387.  02h    BYTE    display flag
  4388.         00h don't display data received from host
  4389.         01h display data
  4390. --------N-610003SF03-------------------------
  4391. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - "FLOW CONTROL DATA"
  4392.     AX = 0003h subfn 03h
  4393.     DS:BX -> argument block (see #03377)
  4394. Return: AX = status (see #03369)
  4395. Desc:    this function permits the caller to freeze/unfreeze the display and
  4396.       the ring buffer
  4397. SeeAlso: AX=0003h/SF=02h,AX=0003h/SF=06h
  4398.  
  4399. Format of VINES argument block for Function 0003h subfunction 03h:
  4400. Offset    Size    Description    (Table 03377)
  4401.  00h    BYTE    session ID (00h)
  4402.  01h    BYTE    03h (function "flow control data")
  4403.  02h    BYTE    flow control flag
  4404.         00h allow characters to be put into display or ring buffer
  4405.         01h don't place any more characters into display or ring buffer
  4406. --------N-610003SF04-------------------------
  4407. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - END ACTIVE SESSION
  4408.     AX = 0003h subfn 04h
  4409.     DS:BX -> argument block (see #03378)
  4410. Return: AX = status (see #03369)
  4411. SeeAlso: AX=0003h/SF=0Ah,AX=0003h/SF=0Dh,AX=0003h/SF=0Fh
  4412.  
  4413. Format of VINES argument block for ending active session:
  4414. Offset    Size    Description    (Table 03378)
  4415.  00h    BYTE    session ID (00h)
  4416.  01h    BYTE    04h (function "end active session")
  4417. --------N-610003SF05-------------------------
  4418. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - SET SESSION PARAMETER
  4419.     AX = 0003h subfn 05h
  4420.     DS:BX -> argument block (see #03379)
  4421. Return: AX = status (see #03369)
  4422. SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=06h,AX=0003h/SF=08h
  4423.  
  4424. Format of VINES argument block for setting session parameters:
  4425. Offset    Size    Description    (Table 03379)
  4426.  00h    BYTE    session ID (00h)
  4427.  01h    BYTE    05h (function "set session parameter")
  4428.  02h    BYTE    parameter number (see #03380)
  4429.  03h    BYTE    new parameter value
  4430.  
  4431. (Table 03380)
  4432. Values for parameter number:
  4433.  00h    line speed (00h=any, 01h=50, 02h=110, 03h=134.5, 04h=150,
  4434.           05h=300, 06h=600, 07h=1200, 08h=2400, 09h=4800, 0Ah=9600)
  4435.  01h    parity (00h=none, 01h=odd, 02h=even)
  4436.  02h    duplex (00h=full, 01h=half)
  4437.  03h    character size (00h=7 bits, 01h=8 bits)
  4438.  04h    stop bits (00h=1, 01h=2)
  4439.  05h    XON/XOFF flow control (00h=no, 01h=yes)
  4440.  07h    intercharacter delay in tenths of a second
  4441.  08h    interline delay in tenths of a second
  4442.  09h    auto linefeed (00h=no, 01h=yes)
  4443.  0Ah    filter control characters (00h=no, 01h=yes)
  4444.  0Bh    terminal type (00h=VT100,01h=glassTTY,02h=VT52,03h=IBM3101)
  4445.  0Ch    auto wrap (00h=no, 01h=yes)
  4446.  0Dh    cursor shape (00h=underscore, 01h=block)
  4447.  0Eh    character set (00h=UK, 01h=US ASCII)
  4448.  0Fh    printer port (00h=LPT1, 01h=LPT2, 02h=LPT3)
  4449. SeeAlso: #03379
  4450. --------N-610003SF06-------------------------
  4451. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - GET SESSION PARAMETER
  4452.     AX = 0003h subfn 06h
  4453.     DS:BX -> argument block (see #03381)
  4454. Return: AX = status (see #03369)
  4455. SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=05h,AX=0003h/SF=07h
  4456.  
  4457. Format of VINES argument block for getting session parameters:
  4458. Offset    Size    Description    (Table 03381)
  4459.  00h    BYTE    session ID (00h)
  4460.  01h    BYTE    06h (function "get session parameter")
  4461.  02h    BYTE    parameter number (see #03380)
  4462.  03h    BYTE    (ret) current parameter value
  4463. --------N-610003SF07-------------------------
  4464. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - SET TAB SETTINGS
  4465.     AX = 0003h subfn 07h
  4466.     DS:BX -> argument block (see #03382)
  4467. Return: AX = status (see #03369)
  4468. SeeAlso: AX=0003h/SF=05h,AX=0003h/SF=08h
  4469.  
  4470. Format of VINES argument block for setting tab settings:
  4471. Offset    Size    Description    (Table 03382)
  4472.  00h    BYTE    session ID (00h)
  4473.  01h    BYTE    07h (function "set tab settings")
  4474.  02h    WORD    pointer to 80-byte buffer in caller's current DS
  4475.           each byte = 00h if no tab, 01h if tab at that position
  4476. --------N-610003SF08-------------------------
  4477. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - GET TAB SETTINGS
  4478.     AX = 0003h subfn 08h
  4479.     DS:BX -> argument block (see #03383)
  4480. Return: AX = status (see #03369)
  4481. SeeAlso: AX=0003h/SF=06h,AX=0003h/SF=07h
  4482.  
  4483. Format of VINES argument block for getting tab settings:
  4484. Offset    Size    Description    (Table 03383)
  4485.  00h    BYTE    session ID (00h)
  4486.  01h    BYTE    08h (function "get tab settings")
  4487.  02h    WORD    pointer to 80-byte buffer in caller's current DS
  4488.         each byte set to 00h if no tab, 01h if tab at that position
  4489. --------N-610003SF09-------------------------
  4490. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - REFRESH EMULATION SCREEN
  4491.     AX = 0003h subfn 09h
  4492.     DS:BX -> argument block (see #03384)
  4493. Return: AX = status (see #03369)
  4494. SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=0Bh
  4495.  
  4496. Format of VINES argument block for Function 0003h subfunction 09h:
  4497. Offset    Size    Description    (Table 03384)
  4498.  00h    BYTE    session ID (00h)
  4499.  01h    BYTE    09h (function "refresh emulation screen")
  4500. --------N-610003SF0A-------------------------
  4501. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - SUSPEND SESSION TEMPORARILY
  4502.     AX = 0003h subfn 0Ah
  4503.     DS:BX -> argument block (see #03385)
  4504. Return: AX = status (see #03369)
  4505. SeeAlso: AX=0003h/SF=04h,AX=0003h/SF=09h,AX=0003h/SF=0Bh,AX=0003h/SF=0Dh
  4506.  
  4507. Format of VINES argument block:
  4508. Offset    Size    Description    (Table 03385)
  4509.  00h    BYTE    session ID (00h)
  4510.  01h    BYTE    0Ah (function "suspend session temporarily")
  4511.  02h    WORD    size of session information to be saved
  4512.  04h    WORD    pointer to buffer in caller's DS
  4513. --------N-610003SF0B-------------------------
  4514. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - RESUME SUSPENDED SESSION
  4515.     AX = 0003h subfn 0Bh
  4516.     DS:BX -> argument block (see #03386)
  4517. Return: AX = status (see #03369)
  4518. SeeAlso: AX=0003h/SF=09h,AX=0003h/SF=0Ah
  4519.  
  4520. Format of VINES argument block:
  4521. Offset    Size    Description    (Table 03386)
  4522.  00h    BYTE    session ID (00h)
  4523.  01h    BYTE    0Bh (function "restore previously suspended session")
  4524.  02h    WORD    size of buffer into which session info is restored
  4525.  04h    WORD    pointer to buffer in caller's DS
  4526. --------N-610003SF0C-------------------------
  4527. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - SET SCROLL LOCK CHECKING
  4528.     AX = 0003h subfn 0Ch
  4529.     DS:BX -> argument block (see #03387)
  4530. Return: AX = status (see #03369)
  4531. SeeAlso: AX=0003h/SF=00h
  4532.  
  4533. Format of VINES argument block:
  4534. Offset    Size    Description    (Table 03387)
  4535.  00h    BYTE    session ID (00h)
  4536.  01h    BYTE    0Ch (function "set state of scroll lock checking")
  4537.  02h    BYTE    check_scroll_lock flag
  4538.         00h off
  4539.         01h on (display of host data stopped while ScrollLock on)
  4540. --------N-610003SF0D-------------------------
  4541. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - EXIT EMULATION
  4542.     AX = 0003h subfn 0Dh
  4543.     DS:BX -> argument block (see #03388)
  4544. Return: AX = status (see #03369)
  4545. SeeAlso: AX=0003h/SF=04h,AX=0003h/SF=0Ah
  4546.  
  4547. Format of VINES argument block:
  4548. Offset    Size    Description    (Table 03388)
  4549.  00h    BYTE    session ID (00h)
  4550.  01h    BYTE    0Dh (function "exit emulation")
  4551. --------N-610003SF0E-------------------------
  4552. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - INTERRUPT ON CHAR FROM HOST
  4553.     AX = 0003h subfn 0Eh
  4554.     DS:BX -> argument block (see #03389)
  4555. Return: AX = status (see #03369)
  4556. SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=14h
  4557.  
  4558. Format of VINES argument block:
  4559. Offset    Size    Description    (Table 03389)
  4560.  00h    BYTE    session ID (00h)
  4561.  01h    BYTE    0Eh (function "interrupt on character from host")
  4562.  02h    DWORD    pointer to routine to be called (0000h:0000h = don't call)
  4563.  06h    DWORD    stack pointer to use when call is made
  4564. --------N-610003SF0F-------------------------
  4565. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - START A SESSION
  4566.     AX = 0003h subfn 0Fh
  4567.     DS:BX -> argument block (see #03390)
  4568. Return: AX = status (see #03369)
  4569. SeeAlso: AX=0003h/SF=04h,AX=0003h/SF=0Bh
  4570.  
  4571. Format of VINES argument block:
  4572. Offset    Size    Description    (Table 03390)
  4573.  00h    BYTE    session ID (00h)
  4574.  01h    BYTE    0Fh (function "start a session")
  4575.  02h    WORD    pointer to information area in caller's current DS (see #03391)
  4576.  
  4577. Format of VINES information area:
  4578. Offset    Size    Description    (Table 03391)
  4579.  00h    WORD    length of service name
  4580.  02h    WORD    pointer to service name in caller's DS
  4581.  04h    BYTE    type of connection (00h=connection name, 01h=dialout)
  4582.  05h    WORD    length of connection name/telephone number
  4583.  07h    WORD    pointer to connection name/telephone number
  4584. --------N-610003SF10-------------------------
  4585. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - START/STOP PRINTING
  4586.     AX = 0003h subfn 10h
  4587.     DS:BX -> argument block (see #03392)
  4588. Return: AX = status (see #03369)
  4589. SeeAlso: AX=0003h/SF=06h,AX=0003h/SF=13h
  4590.  
  4591. Format of VINES argument block:
  4592. Offset    Size    Description    (Table 03392)
  4593.  00h    BYTE    session ID (00h)
  4594.  01h    BYTE    10h (function "start/stop printing of data received from host")
  4595.  02h    WORD    print capture flag (00h=off, 01h=on)
  4596. --------N-610003SF11-------------------------
  4597. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - GET FILE TRANSFER PARAMETERS
  4598.     AX = 0003h subfn 11h
  4599.     DS:BX -> argument block (see #03393)
  4600. Return: AX = status (see #03369)
  4601. SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=12h
  4602.  
  4603. Format of VINES argument block:
  4604. Offset    Size    Description    (Table 03393)
  4605.  00h    BYTE    session ID (00h)
  4606.  01h    BYTE    11h (function "get file transfer parameters")
  4607.  02h    WORD    pointer to info area in caller's current DS (see #03394)
  4608.  
  4609. Format of VINES info area:
  4610. Offset    Size    Description    (Table 03394)
  4611.  00h    BYTE    protocol flag (00h none, 01h Kermit)
  4612.  01h    BYTE    direction flag (00h send, 01h receive)
  4613.  02h    BYTE    length of null-terminated PC filename
  4614.  03h    DWORD    pointer to null-terminated PC filename
  4615.  07h    BYTE    length of null-terminated host filename
  4616.  08h    DWORD    pointer to null-terminated host filename
  4617. --------N-610003SF12-------------------------
  4618. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - GET CONNECTION INFORMATION
  4619.     AX = 0003h subfn 12h
  4620.     DS:BX -> argument block (see #03395)
  4621. Return: AX = status (see #03369)
  4622. SeeAlso: AX=0003h/SF=11h,AX=0003h/SF=15h
  4623.  
  4624. Format of VINES argument block:
  4625. Offset    Size    Description    (Table 03395)
  4626.  00h    BYTE    session ID (00h)
  4627.  01h    BYTE    12h (function "get connection information")
  4628.  02h    WORD    offset of buffer for connection information (see #03396)
  4629.  
  4630. Format of VINES connection information:
  4631. Offset    Size    Description    (Table 03396)
  4632.  00h    WORD    length of service name (returned)
  4633.  02h    WORD    pointer to 64-byte buffer for service name
  4634.  04h    BYTE    type of connection
  4635.         00h connection name
  4636.         01h dialout
  4637.  05h    WORD    length of connection name/telephone number
  4638.  07h    WORD    pointer to 64-byte buffer for name/telno
  4639.  09h    BYTE    server line number being used (returned)
  4640. --------N-610003SF13-------------------------
  4641. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - START/STOP TRACING TRAFFIC
  4642.     AX = 0003h subfn 13h
  4643.     DS:BX -> argument block (see #03397)
  4644. Return: AX = status (see #03369)
  4645. SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=0Eh
  4646.  
  4647. Format of VINES argument block:
  4648. Offset    Size    Description    (Table 03397)
  4649.  00h    BYTE    session ID (00h)
  4650.  01h    BYTE    13h (function "start/stop tracing data traffic in session")
  4651.  02h    BYTE    trace flag (00h=off, 01h=on)
  4652. --------N-610003SF14-------------------------
  4653. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - INTERRUPT ON HOST MESSAGE
  4654.     AX = 0003h subfn 14h
  4655.     DS:BX -> argument block (see #03398)
  4656. Return: AX = status (see #03369)
  4657. SeeAlso: AX=0003h/SF=0Eh
  4658.  
  4659. Format of VINES argument block:
  4660. Offset    Size    Description    (Table 03398)
  4661.  00h    BYTE    session ID (00h)
  4662.  01h    BYTE    14h (function "interrupt on message from host")
  4663.  02h    DWORD    pointer to routine to be called (0000h:0000h = don't call)
  4664.  06h    DWORD    stack pointer to use when call is made
  4665. --------N-610003SF15-------------------------
  4666. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - RESET ERROR
  4667.     AX = 0003h subfn 15h
  4668.     DS:BX -> argument block (see #03399)
  4669. Return: AX = status (see #03369)
  4670. SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=12h
  4671.  
  4672. Format of VINES argument block:
  4673. Offset    Size    Description    (Table 03399)
  4674.  00h    BYTE    session ID (00h)
  4675.  01h    BYTE    15h (function "reset error")
  4676. --------V-610003-----------------------------
  4677. INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - REPORT ZOOM FACTOR
  4678.     AX = 0003h
  4679. Return: AX = zoom factor
  4680. Desc:    returns the current zoom factor
  4681. Range:    unknown
  4682. Notes:    INT 61h is the default interrupt; the actual interrupt number can be
  4683.       obtained by calling INT 16/AH=FFh
  4684.     not all vendors include the Tseng TSR which supports these functions
  4685. SeeAlso: AX=0000h"OPTIMA",AX=0005h"OPTIMA",INT 16/AH=FFh"OPTIMA"
  4686. --------N-610004-----------------------------
  4687. INT 61 - Banyan VINES - FILE SERVICE CONTROL
  4688.     AX = 0004h
  4689.     DS:DX -> request block (see #03401)
  4690. Return: AX = status (see #03400)
  4691. Notes:    This service is handled by the redirector
  4692.     The request dispatch table contains dummy entries for requests 0Ah,
  4693.       0Dh, 15h, 19h, and 1Ah, which always return error 0033h (invalid
  4694.       request ID)
  4695.  
  4696. (Table 03400)
  4697. Values for Banyan VINES file service control status code:
  4698.  0000h    successful
  4699.  0002h    file not found
  4700.  0003h    path not found
  4701.  000Fh    invalid drive
  4702.  0015h    drive not ready
  4703.  0033h    invalid request ID
  4704.  0034h    drive not connected
  4705.  0037h    drive number out of range
  4706.  0038h    drive number not available
  4707.  003Ah    invalid operation
  4708.  0055h    drive already connected
  4709.  0057h    invalid number of entries
  4710.  
  4711. Format of Banyan VINES file service request block:
  4712. Offset    Size    Description    (Table 03401)
  4713.  00h    WORD    request ID (1..28)
  4714.  02h  n BYTES    additional parameters and result buffer
  4715. --------N-610004SF0001-----------------------
  4716. INT 61 - Banyan VINES - SET DRIVE CONNECTION
  4717.     AX = 0004h subfn 0001h
  4718.     DS:DX -> request block (see #03402)
  4719. Return: AX = status (0000h,0037h,0038h,0055h) (see #03400)
  4720. Desc:    Maps the specified file service to a DOS drive letter
  4721. Note:    If an empty service name is specified, an existing connection will
  4722.       be removed
  4723. SeeAlso: AX=0004h/SF=0002h
  4724.  
  4725. Format of VINES Function 0004h/Subfunction 0001h request block:
  4726. Offset    Size    Description    (Table 03402)
  4727.  00h    WORD    0001h
  4728.  02h    BYTE    drive number (0=default, 1=A, ...)
  4729.  03h 16    BYTEs    reserved
  4730.  13h 64    BYTEs    null-terminated file service name
  4731.  53h  5    BYTEs    reserved
  4732. --------N-610004SF0002-----------------------
  4733. INT 61 - Banyan VINES - GET DRIVE CONNECTION
  4734.     AX = 0004h subfn 0002h
  4735.     DS:DX -> request block (see #03403)
  4736. Return: AX = status (0000h,0034h,0037h) (see #03400)
  4737. Desc:    Returns the StreetTalk name of the associated file service
  4738. SeeAlso: AX=0004h/SF=0001h,AX=0004h/SF=0003h
  4739.  
  4740. Format of VINES Function 0004h/Subfunction 0002h request block:
  4741. Offset    Size    Description    (Table 03403)
  4742.  00h    WORD    0002h
  4743.  02h    BYTE    drive number (0=default, 1=A, ...)
  4744.  03h 16    BYTEs    reserved
  4745.  13h 64    BYTEs    buffer for null-terminated file service name
  4746.  53h  5    BYTEs    reserved
  4747. --------N-610004SF0003-----------------------
  4748. INT 61 - Banyan VINES - GET NETWORK DRIVE MAP
  4749.     AX = 0004h subfn 0003h
  4750.     DS:DX -> request block (see #03404)
  4751. Return: AX = status
  4752.         0000h drive map returned in request block
  4753. Desc:    Returns a bit map indicating which drive numbers are connected to a
  4754.       file service
  4755. Note:    Only bits 0-25 are significant
  4756. SeeAlso: AX=0004h/SF=0002h
  4757.  
  4758. Format of VINES Function 0004h/Subfunction 0003h request block:
  4759. Offset    Size    Description    (Table 03404)
  4760.  00h    WORD    0003h
  4761.  02h    DWORD    buffer for drive map (bit0=A, bit1=B, ...)
  4762. --------N-610004SF0004-----------------------
  4763. INT 61 - Banyan VINES - SET USER NAME
  4764.     AX = 0004h subfn 0004h
  4765.     DS:DX -> request block (see #03405)
  4766. Return: AX = status (0000h) (see #03400)
  4767. Notes:    Other side effects, if any, not known
  4768. SeeAlso: AX=0004h/SF=0005h,#03431 [ID 0004h],AX=0007h/BX=0005h
  4769.  
  4770. Format of VINES Function 0004h/Subfunction 0004h request block:
  4771. Offset    Size    Description    (Table 03405)
  4772.  00h    WORD    0004h
  4773.  02h 64    BYTE    null-terminated user name
  4774. --------N-610004SF0005-----------------------
  4775. INT 61 - Banyan VINES - GET USER NAME
  4776.     AX = 0004h subfn 0005h
  4777.     DS:DX -> request block (see #03406)
  4778. Return: AX = status (see also #03400)
  4779.         0000h user name returned in request block
  4780. Desc:    Returns the StreetTalk name of the currently logged in user
  4781. SeeAlso: AX=0004h/SF=0004h,#03431 [ID 0004h],AX=0007h/BX=0005h
  4782. SeeAlso: AX=0004h/SF=0004h
  4783.  
  4784. Format of VINES Function 0004h/Subfunction 0005h request block:
  4785. Offset    Size    Description    (Table 03406)
  4786.  00h    WORD    0005h (subfunction "Get User Name")
  4787.  02h 64    BYTE    buffer for null-terminated user name
  4788. --------N-610004SF0006-----------------------
  4789. INT 61 - Banyan VINES - TEST DRIVE CONNECTION
  4790.     AX = 0004h subfn 0006h
  4791.     DS:DX -> request block (see #03407)
  4792. Return: AX = status (see also #03400)
  4793.         0000h connection flag returned in request block
  4794. Desc:    Returns a flag indicating if the drive is connected to a file service
  4795. SeeAlso: AX=0004h/SF=0007h
  4796.  
  4797. Format of VINES Function 0004h/Subfunction 0006h request block:
  4798. Offset    Size    Description    (Table 03407)
  4799.  00h    WORD    0006h (subfunction "Test Drive Connection")
  4800.  02h    BYTE    buffer for connection flag (1 = not connected, 2 = connected)
  4801. --------N-610004SF0007-----------------------
  4802. INT 61 - Banyan VINES - GET CONNECTION DATA STRUCTURES
  4803.     AX = 0004h subfn 0007h
  4804.     DS:DX -> request block (see #03408)
  4805. Return: AX = status (see also #03400)
  4806.         0000h pointer returned in request block
  4807.         0033h invalid request ID
  4808. Desc:    Returns pointers to various internal data structures
  4809.  
  4810. Format of VINES Function 0004h/Subfunction 0007h request block:
  4811. Offset    Size    Description    (Table 03408)
  4812.  00h    WORD    0007h
  4813.  02h    BYTE    request ID (0..7) (see #03409)
  4814.  03h    WORD    buffer for pointer segment
  4815.  05h    WORD    buffer for pointer offset
  4816. SeeAlso: #03410,#03411
  4817.  
  4818. (Table 03409)
  4819. Values for VINES pointer ID:
  4820.  00h    job file table ???
  4821.  01h    drive handle table
  4822.  02h    drive connection table
  4823.  03h    IPC port of drive Z:
  4824.  04h    end of drive connection table
  4825.  05h    ???
  4826.  06h    ???
  4827.  07h    redirector data segment (offset=0)
  4828. SeeAlso: #03408
  4829.  
  4830. Format of VINES drive handle table:
  4831. Offset    Size    Description    (Table 03410)
  4832.  00h    BYTE    handle to default drive (0 = not connected)
  4833.  01h    BYTE    handle to drive A: (0 = not connected)
  4834.     ...
  4835.  1Ah    BYTE    handle to drive Z: (0 = not connected)
  4836. SeeAlso: #03411
  4837.  
  4838. Format of VINES drive connection table:
  4839. Offset    Size    Description    (Table 03411)
  4840.  00h    WORD    file service type (?) (0001h if drive Z:, 0000h else)
  4841.  02h 16    BYTEs    IPC port (contains the server serial number)
  4842.  12h 46    BYTEs    ???
  4843.  40h 64    BYTEs    null-terminated StreetTalk name of associated file service
  4844.  80h 64    BYTEs    null-terminated root directory (/ROOT: parameter of SETDRIVE)
  4845. SeeAlso: #03410
  4846. --------N-610004SF0008-----------------------
  4847. INT 61 - Banyan VINES - GET SERVER SERIAL NUMBER
  4848.     AX = 0004h subfn 0008h
  4849.     DS:DX -> request block (see #03412)
  4850. Return: AX = status (0000h,000Fh,0015h) (see #03400)
  4851. Notes:    The server ID is extracted from the IPC port address of the associated
  4852.       file service stored in the drive connection table
  4853.     The server serial number and the server subnet number are returned in
  4854.       big-endian (Motorola) format (i.e. MSB first)
  4855. SeeAlso: AX=0004h/SF=0005h
  4856.  
  4857. Format of VINES request block for getting server serial number:
  4858. Offset    Size    Description    (Table 03412)
  4859.  00h    WORD    0008h
  4860.  02h    WORD    drive number (0=default, 1=A, ...)
  4861.  04h    DWORD    buffer for server serial number
  4862.  08h    WORD    buffer for server subnet number (always 0001h)
  4863. --------N-610004SF0009-----------------------
  4864. INT 61 - Banyan VINES - SET ??? PARAMETER
  4865.     AX = 0004h subfn 0009h
  4866.     DS:DX -> request block (see #03413)
  4867. Return: AX = status (0000h) (see #03400)
  4868. Notes:    The specified WORD parameter is copied to offset 1702h of the
  4869.       redirector code segment (revision 5.53)
  4870. SeeAlso: AX=0004h/SF=000Bh
  4871.  
  4872. Format of VINES Function 0004h/Subfunction 0009h request block:
  4873. Offset    Size    Description    (Table 03413)
  4874.  00h    WORD    0009h
  4875.  02h    WORD    parameter
  4876. --------N-610004SF000B-----------------------
  4877. INT 61 - Banyan VINES - GET ??? DRIVE PARAMETER
  4878.     AX = 0004h subfn 000Bh
  4879.     DS:DX -> request block (see #03414)
  4880. Return: AX = status (0000h,0034h,0037h) (see #03400)
  4881. Notes:    This request returns a WORD value from the drive connection table
  4882.       read from offset 0012h of the specified drive's entry (usually 0037h)
  4883. SeeAlso: AX=0004h/SF=0009h
  4884.  
  4885. Format of VINES Function 0004h/Subfunction 000Bh request block:
  4886. Offset    Size    Description    (Table 03414)
  4887.  00h    WORD    000Bh
  4888.  02h    BYTE    drive number (0=default, 1=A, ...)
  4889.  03h    WORD    buffer for parameter
  4890. --------N-610004SF000C-----------------------
  4891. INT 61 - Banyan VINES - LOGOUT FROM VINES
  4892.     AX = 0004h subfn 000Ch
  4893.     DS:DX -> request block (see #03415)
  4894. Return: AX = status 0000h (see #03400)
  4895. Desc:    Terminates a running VINES session and clears all session specific
  4896.       buffers
  4897. SeeAlso: AX=0004h/SF=0008h
  4898.  
  4899. Format of VINES Function 0004h/Subfunction 000Ch request block:
  4900. Offset    Size    Description    (Table 03415)
  4901.  00h    WORD    000Ch
  4902. --------N-610004SF000E-----------------------
  4903. INT 61 - Banyan VINES - GET ACCESS RIGHTS LIST (ARL)
  4904.     AX = 0004h subfn 000Eh
  4905.     DS:DX -> request block (see #03416)
  4906. Return: AX = status (see also #03400)
  4907.         0000h request has been processed
  4908. Desc:    Returns the owner, group, and extended access rights for the specified
  4909.       file or directory
  4910. Note:    A status of 0000h does not necessarily indicate a successful request;
  4911.       check the status word at offset 000Eh of the request block too
  4912. SeeAlso: AX=0004h/SF=000Fh
  4913.  
  4914. Format of VINES Function 0004h/Subfunction 000Eh request block:
  4915. Offset    Size    Description    (Table 03416)
  4916.  00h    WORD    000Eh (subfunction "Get Access Rights List")
  4917.  02h    BYTE    drive number (0=default, 1=A, ...)
  4918.  03h    BYTE    reserved
  4919.  04h    DWORD    pointer to path specification (drive letter ignored)
  4920.  08h    DWORD    pointer to ARL control block (see #03417)
  4921.  0Ch    WORD    buffer for number of ARL entries (1..5)
  4922.  0Eh    WORD    buffer for status (see #03418)
  4923.  
  4924. Format of ARL control block:
  4925. Offset    Size    Description    (Table 03417)
  4926.  00h 64    BYTEs    1st StreetTalk name (user, list, or service)
  4927.  40h    WORD    1st ARL
  4928.  42h 64    BYTEs    2nd StreetTalk name (user, list, or service)
  4929.  82h    WORD    2nd ARL
  4930.  84h 64    BYTEs    3rd StreetTalk name (user, list, or service)
  4931.  C4h    WORD    3rd ARL
  4932.  C6h 64    BYTEs    4th StreetTalk name (user, list, or service)
  4933. 106h    WORD    4th ARL
  4934. 108h 64    BYTEs    5th StreetTalk name (user, list, or service)
  4935. 148h    WORD    5th ARL
  4936.  
  4937. (Table 03418)
  4938. Values for VINES Get/Set Access Rights List status:
  4939.  0000h    successful
  4940.  0002h    file not found
  4941.  0003h    path not found
  4942.  003Ah    invalid operation
  4943.  0057h    invalid number of entries
  4944. --------N-610004SF000F-----------------------
  4945. INT 61 - Banyan VINES - SET ACCESS RIGHTS LIST (ARL)
  4946.     AX = 0004h subfn 000Fh
  4947.     DS:DX -> request block (see #03419)
  4948. Return: AX = status (see also #03400)
  4949.         0000h request has been processed
  4950. Desc:    Sets the owner, group, and extended access rights for the specified
  4951.       file or directory
  4952. Note:    A status of 0000h does not necessarily indicate a successful request;
  4953.       check the status word at offset 000Eh of the request block too
  4954.     If the number of ARL entries is less than 1 or greater than 5, error
  4955.       0057h (invalid number of entries) is returned
  4956. SeeAlso: AX=0004h/SF=000Eh
  4957.  
  4958. Format of VINES Function 0004h/Subfunction 000Fh request block:
  4959. Offset    Size    Description    (Table 03419)
  4960.  00h    WORD    000Fh
  4961.  02h    BYTE    drive number (0=default, 1=A, ...)
  4962.  03h    BYTE    reserved
  4963.  04h    DWORD    pointer to path specification (drive letter ignored)
  4964.  08h    DWORD    pointer to ARL control block (see #03417)
  4965.  0Ch    WORD    number of ARL entries (1..5)
  4966.  0Eh    WORD    buffer for status (see #03418)
  4967. --------N-610004SF0010-----------------------
  4968. INT 61 - Banyan VINES - FILE SERVICE CONTROL - ???
  4969.     AX = 0004h subfn 0010h
  4970.     DS:DX -> request block (see #03420)
  4971. Return: AX = status (see also #03400)
  4972.         0000h request has been processed
  4973. SeeAlso: AX=0004h/SF=000Fh
  4974.  
  4975. Format of VINES Function 0004h/Subfunction 0010h request block:
  4976. Offset    Size    Description    (Table 03420)
  4977.  00h    WORD    0010h
  4978.  02h    BYTE    drive number (0=default, 1=A, ...)
  4979.  03h    BYTE    reserved
  4980.  04h 64    BYTEs    ???
  4981.  44h 16    BYTEs    IPC port (see #03328 at AX=0001h"Sosock")
  4982. --------N-610004SF0013-----------------------
  4983. INT 61 - Banyan VINES - GET VALUE OF GLOBAL VARIABLE
  4984.     AX = 0004h subfn 0013h
  4985.     DS:DX -> request block (see #03421)
  4986. Return: AX = status (see also #03400)
  4987.         0000h successful
  4988.         0033h invalid request ID (returned if variable index out of range)
  4989. Desc:    Returns the value of the specified global variable
  4990. Note:    The data will be truncated if the specified buffer is not large enough.
  4991.       Check the length word in the request block to find out how many
  4992.       bytes should have been copied.
  4993. SeeAlso: AX=0004h/SF=0014h,AX=0006h
  4994.  
  4995. Format of request block:
  4996. Offset    Size    Description    (Table 03421)
  4997.  00h    WORD    0013h
  4998.  02h    WORD    variable index (0000h-001Fh) (see #03422)
  4999.  04h    WORD    buffer length (on exit set to # of bytes actually needed)
  5000.  06h    DWORD    far pointer to result buffer
  5001. SeeAlso: #03423
  5002.  
  5003. (Table 03422)
  5004. Values for variable indices:
  5005. Index    Length    Description
  5006.  0000h       1    ???
  5007.  0001h      16    StreetTalk port
  5008.  0002h       4    StreetTalk session handle
  5009.  0003h       6    colors
  5010.  0004h      64    StreetTalk name of currently logged in user
  5011.  0005h       0    old clear text password (not applicable)
  5012.  0006h       0    default group (not applicable)
  5013.  0007h       1    number of messages in message queue
  5014.  0008h       1    message flag
  5015.  0009h      16    TalkPort
  5016.  000Ah       2    TalkPort socket
  5017.  000Bh      64    StreetTalk name of mail service
  5018.  000Ch       2    message timeout
  5019.  000Dh       2    next message place
  5020.  000Eh     246    message queue (3 times 80 characters + 2 flag bytes)
  5021.  000Fh      14    system nonce
  5022.  0010h       2    failed login count
  5023.  0011h       1    new mail message received
  5024.  0012h       8    mail service capabilities
  5025.  0013h       3    printer port diverted
  5026.  0014h      32    international location
  5027.  0015h      16    IPC port of drive Z:
  5028.  0016h    1024    pointer to current directory table
  5029.  0017h       2    maximum number of file volume mappings
  5030.  0018h      24    routine to call back for messages (6 far pointers)
  5031.  0019h       4    current virtual machine
  5032.  001Ah      20    DOS redirector message bell tones
  5033.  001Bh       2    various flags used for internal communication
  5034.  001Ch       0    OS/2 client configuration (not applicable)
  5035.  001Dh       8    redirector/IFS file version
  5036.  001Eh       0    reserved (not applicable)
  5037.  001Fh       4    address of VVINESD.386 dispatch
  5038. --------N-610004SF0014-----------------------
  5039. INT 61 - Banyan VINES - SET VALUE OF GLOBAL VARIABLE
  5040.     AX = 0004h subfn 0014h
  5041.     DS:DX -> request block (see #03423)
  5042. Return: AX = status
  5043.         0000h successful
  5044.         0033h invalid request ID (returned if variable index out of range)
  5045. Desc:    Assigns a new value to the specified global variable
  5046. Note:    If the specified number of bytes to copy exceeds the size of the
  5047.       destination variable, nothing will be copied.
  5048. SeeAlso: AX=0004h/SF=0013h,AX=0006h
  5049.  
  5050. Format of request block:
  5051. Offset    Size    Description    (Table 03423)
  5052.  00h    WORD    0014h
  5053.  02h    WORD    variable index (0000h-001Fh) (see #03422)
  5054.  04h    WORD    number of bytes to copy
  5055.  06h    DWORD    far pointer to new value
  5056. SeeAlso: #03421
  5057. --------N-610004SF0016-----------------------
  5058. INT 61 - Banyan VINES - GET NUMBER OF OPEN FILES ON REMOTE DRIVE
  5059.     AX = 0004h subfn 0016h
  5060.     DS:DX -> request block (see #03424)
  5061. Return: AX = status
  5062.         0000h open file count returned in request block
  5063. Desc:    Counts the number of open files on the specified remote drive.
  5064. Note:    No error is returned if the specified drive number is invalid or points
  5065.       to a local drive. Use AX=0004h/SF=0006h to test if a given drive
  5066.       number is assigned to a remote drive.
  5067. SeeAlso: AX=0004h/SF=0006h
  5068.  
  5069. Format of request block:
  5070. Offset    Size    Description    (Table 03424)
  5071.  00h    WORD    0016h
  5072.  02h    BYTE    drive number (0=default, 1=A:, ...)
  5073.  03h    BYTE    reserved
  5074.  04h    WORD    buffer for open file count
  5075. SeeAlso: #03426
  5076. --------N-610004SF0018-----------------------
  5077. INT 61 - Banyan VINES - SET UNIDENTIFIED INTERNAL FLAG
  5078.     AX = 0004h subfn 0018h
  5079.     DS:DX -> request block (see #03425)
  5080. Return: AX = status
  5081.         0000h success
  5082. Desc:    Sets an unidentified BYTE variable in the redirector data segment to 1.
  5083. Note:    In the VINES 5.53 "REDIR4" redirector, this variable is located at
  5084.       DS:0B53.
  5085.  
  5086. Format of request block:
  5087. Offset    Size    Description    (Table 03425)
  5088.  00h    WORD    0018h
  5089. SeeAlso: #03426
  5090. --------N-610004SF001B-----------------------
  5091. INT 61 - Banyan VINES - UNIDENTIFIED DRIVE SPECIFIC FUNCTION
  5092.     AX = 0004h subfn 001Bh
  5093.     DS:DX -> request block (see #03426)
  5094. Return: AX = status
  5095.         0000h success
  5096.         0034h drive not connected
  5097.         0037h drive number out of range
  5098. Desc:    The purpose of this function is not known.
  5099.  
  5100. Format of request block:
  5101. Offset    Size    Description    (Table 03426)
  5102.  00h    WORD    001Bh
  5103.  02h    BYTE    drive number (0=default, 1=A:, ...)
  5104.  03h    BYTE    ???
  5105.  04h    WORD    ???
  5106.  06h    DWORD    far pointer to data area
  5107.  0Ah    WORD    ???
  5108.  0Ch    DWORD    far pointer to data area
  5109.  10h    WORD    buffer for result
  5110. SeeAlso: #03424,#03426
  5111. --------N-610004SF001C-----------------------
  5112. INT 61 - Banyan VINES - UNIDENTIFIED FUNCTION
  5113.     AX = 0004h subfn 001Ch
  5114.     DS:DX -> request block (see #03427)
  5115. Return: AX = status
  5116.         0000h success
  5117.         0057h invalid number of entries
  5118. Desc:    The purpose of this function is not known.
  5119.  
  5120. Format of request block:
  5121. Offset    Size    Description    (Table 03427)
  5122.  00h    WORD    001Ch
  5123.  02h    WORD    ???
  5124.  04h    WORD    ???
  5125.  06h    WORD    ???
  5126.  08h    WORD    ???
  5127.  0Ah    DWORD    far pointer to data area (14 bytes)
  5128. --------V-610004-----------------------------
  5129. INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - ENTER SPECIFY MODE
  5130.     AX = 0004h
  5131. Range:    unknown
  5132. Notes:    Specify Mode is enabled by hot key (seeAlso below), and allows
  5133.       panning and zooming via the numeric keypad.
  5134.     INT 61 is the default interrupt; the actual interrupt number can be
  5135.       obtained by calling INT 16/AH=FFh
  5136.     not all vendors include the Tseng TSR which supports these functions
  5137. SeeAlso: AX=0000h"OPTIMA",AX=0007h"OPTIMA",INT 16/AH=FFh"OPTIMA"
  5138. --------N-610005-----------------------------
  5139. INT 61 - Banyan VINES - PRINT SERVICE CONTROL
  5140.     AX = 0005h
  5141.     DS:DX -> request block (see #03428)
  5142. Return: AX = status
  5143.         0000h successful
  5144.         0001h network software not installed or incompatible
  5145. Notes:    This service is handled by the redirector
  5146.     The size of the request/result block depends on the selected function
  5147.       and the value at offset 04h.
  5148. SeeAlso: INT 2F/AX=D702h
  5149.  
  5150. Format of VINES request/result block for printer control:
  5151. Offset    Size    Description    (Table 03428)
  5152.  00h    WORD    function
  5153.         0201h "endspool" all data for a print job has been sent
  5154.               (no bytes returned)
  5155.         0202h "deassign" the virtual printer port
  5156.             Before the printer port is deassigned all data sent
  5157.               to it is endspooled.
  5158.               (no bytes returned)
  5159.         0205h "get_active" get currently active printer port
  5160.               (1 byte required for result)
  5161.             Returns:  - the currently active printer port (1-3) (0 if
  5162.                   there is none)
  5163.         0207h ??? purpose unknown; called periodically every second
  5164.         020Ch "get_bannertitle" gets the title which is printed on the
  5165.               banner page of a print job sent to the virtual port
  5166.               (16 bytes required for result)
  5167.             Returns:  - the null-terminated banner title
  5168.         020Eh "get_servicename" gets the name of the print service
  5169.               assigned to the virtual port
  5170.               (64 bytes required for result)
  5171.             Returns:  - the null-terminated print service name assigned
  5172.                   to the virtual port
  5173.         0210h "set_bannertitle" sets the title which is printed on the
  5174.               banner page of a print job sent to the virtual port
  5175.               (16 bytes required for input)
  5176.             Input:  - the null-terminated banner title (max 16 chars)
  5177.         0212h "set_servicename" sets the name of the print service
  5178.               assigned to the virtual port
  5179.               (64 bytes required for input)
  5180.             Input:  - the null-terminated print service name
  5181.                   (max 64 chars)
  5182.         0216h "get_job_paper_format" gets the paper format for
  5183.               subsequent print jobs
  5184.               (16 bytes required for result)
  5185.             Returns:  - the null-terminated paper format
  5186.         0217h "set_job_paper_format" sets the paper format for
  5187.               subsequent print jobs
  5188.               (16 bytes required for input)
  5189.             Input:  - the null-terminated paper format (max 16 chars)
  5190.  02h    WORD    number of active virtual port (1-3) (0 for function 0205h)
  5191.  04h    WORD    Offset into the request block from which additional input
  5192.           is to be read and/or at which the result is to be copied
  5193.           (if there is any). Therefore the smallest block size for a
  5194.           function which returns a result is
  5195.             this offset + the maximum number of returned bytes - 1
  5196.  06h    WORD    0000h
  5197. --------V-610005-----------------------------
  5198. INT 61 - OPTIMA 1024 VGA-Sync - QUERY ZOOM WINDOW
  5199.     AX = 0005h
  5200.     BX:CX -> buffer for window parameters (see #03429)
  5201. Range:    unknown
  5202. Notes:    INT 61 is the default interrupt; the actual interrupt number can be
  5203.       obtained by calling INT 16/AH=FFh
  5204.     not all vendors include the Tseng TSR which supports these functions
  5205. SeeAlso: AX=0000h"OPTIMA",AX=0003h"OPTIMA",AX=0006h"OPTIMA"
  5206. SeeAlso: INT 16/AH=FFh"OPTIMA"
  5207.  
  5208. Format of Optima 1024 window parameters:
  5209. Offset    Size    Description    (Table 03429)
  5210.  00h    WORD    X start of zoom window
  5211.  02h    WORD    Y start of zoom window
  5212.  04h    WORD    X end of zoom window
  5213.  06h    WORD    Y end of zoom window
  5214.  08h    WORD    current zoom factor
  5215.  0Ah    WORD    zoom offset start X
  5216.  0Ch    WORD    zoom offset start Y
  5217. --------V-610006-----------------------------
  5218. INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - SET ZOOM WINDOW
  5219.     AX = 0006h
  5220.     BX:CX -> zoom window description (see #03430)
  5221. Range:    unknown
  5222. Notes:    width of zoom window must be a multiple of the pixel replication (zoom)
  5223.       factor
  5224.     INT 61 is the default interrupt; the actual interrupt number can be
  5225.       obtained by calling INT 16/AH=FFh
  5226.     not all vendors include the Tseng TSR which supports these functions
  5227. SeeAlso: AX=0000h"OPTIMA",AX=0001h"OPTIMA",AX=0005h"OPTIMA",AX=0008h"OPTIMA"
  5228. SeeAlso: INT 16/AH=FFh"OPTIMA"
  5229.  
  5230. Format of Optima 1024 zoom window description:
  5231. Offset    Size    Description    (Table 03430)
  5232.  00h    WORD    X start of zoom window
  5233.  02h    WORD    Y start of zoom window
  5234.  04h    WORD    X end of zoom window
  5235.  06h    WORD    Y end of zoom window
  5236. --------N-610006-----------------------------
  5237. INT 61 - Banyan VINES - GET ADDRESS OF GLOBAL VARIABLE
  5238.     AX = 0006h
  5239.     BX = bits 14..0: request ID (see #03431)
  5240.          bit  15:     result destination flag (0 for ES:BX, 1 for AX:BX)
  5241. Return: AX = status
  5242.         0000h successful
  5243.         000Bh invalid request
  5244.     ES:BX -> internal variable (bit 15 of BX was not set)
  5245.     AX:BX -> internal variable (bit 15 of BX was set)
  5246. Note:    This service is handled by the redirector
  5247. SeeAlso: AX=0004h/SF=0013h,AX=0004h/SF=0014h
  5248.  
  5249. (Table 03431)
  5250. Values for request IDs:
  5251. Request    Length    Description
  5252.  0000h       1    ???
  5253.  0001h      16    StreetTalk port
  5254.  0002h       4    StreetTalk session handle
  5255.  0003h       6    colors
  5256.  0004h      64    StreetTalk name of currently logged in user
  5257.  0005h       0    old clear text password (always returns error code 000Bh)
  5258.  0006h       0    default group (not applicable)
  5259.  0007h       1    message queue count
  5260.  0008h       1    message flag
  5261.  0009h      16    TalkPort
  5262.  000Ah       2    TalkPort socket
  5263.  000Bh      64    StreetTalk name of mail service
  5264.  000Ch       2    message timeout
  5265.  000Dh       2    next message place
  5266.  000Eh     246    message queue
  5267.  000Fh      14    system nonce
  5268.  0010h       2    failed login count
  5269.  0011h       1    new mail message received
  5270.  0012h       8    mail capabilities
  5271.  0013h       3    printer port diverted
  5272.  0014h      32    international location
  5273.  0015h      16    IPC port of drive Z:
  5274.  0016h    1024    pointer to current directory table
  5275.  0017h       2    maximum number of file volume mappings
  5276.  0018h      24    routine to call back for messages
  5277.  0019h       4    current virtual machine
  5278.  001Ah      20    DOS redirector message bell tones
  5279.  001Bh       2    various flags used for internal communication
  5280.  001Ch       0    OS/2 client configuration (always returns error code 000Bh)
  5281.  001Dh       8    redirector/IFS file version
  5282.  001Eh       0    reserved (always returns error code 000Bh)
  5283.  001Fh       4    address of VVINESD.386 dispatch
  5284. --------V-610007-----------------------------
  5285. INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - QUERY APPLICATION KEY
  5286.     AX = 0007h
  5287. Return: AX = current state (0000h/0001h)
  5288. Desc:    returns the current toggle state of the application (END) key in
  5289.       specify mode. E.g. in the OPTIMA AutoCAD driver, 0 means AutoCAD
  5290.       calls INT 61/AX=0001h every time the crosshair cursor moves.
  5291. Notes:    In specify mode, the END key has been reserved for applications.
  5292.     INT 61 is the default interrupt; the actual interrupt number can be
  5293.       obtained by calling INT 16/AH=FFh
  5294.     not all vendors include the Tseng TSR which supports these functions
  5295. SeeAlso: AX=0000h"OPTIMA",AX=0001h"OPTIMA",AX=0004h"OPTIMA"
  5296. SeeAlso: INT 16/AH=FFh"OPTIMA",INT 7A/AX=0001h"AutoCAD"
  5297. --------N-610007BX0000-----------------------
  5298. INT 61 - Banyan VINES - RECONNECT TO STREETTALK
  5299.     AX = 0007h
  5300.     BX = 0000h
  5301. Return: AX = status (see #03432)
  5302. SeeAlso: AX=0007h/BX=0002h
  5303.  
  5304. (Table 03432)
  5305. Values for VINES function status:
  5306.  0000h    successful
  5307.  0001h    requested handler not installed or incompatible
  5308.  000Bh    service busy
  5309.  000Ch    invalid request ID
  5310.  03E9h    incorrect name syntax
  5311.  03EAh    organization name too long
  5312.  03EBh    group name too long
  5313.  03ECh    item name too long
  5314.  03EDh    StreetTalk name too long
  5315.  03F3h    organization not found
  5316.  03F4h    group not found
  5317.  03F5h    StreetTalk name not found
  5318.  03F8h    not a StreetTalk name
  5319.  0409h    modify access denied
  5320.  040Dh    appropriate StreetTalk name unavailable
  5321.  0411h    all matching names have been returned
  5322.  0412h    some groups unavailable, all available matches returned
  5323. --------N-610007BX0001-----------------------
  5324. INT 61 - Banyan VINES - GET MM PORT FOR A SERVICE
  5325.     AX = 0007h
  5326.     BX = 0001h
  5327.     DS:DX -> StreetTalk service name (64 bytes)
  5328.     DS:DI -> 16-byte buffer for IPC port (see #03328 at AX=0001h"Sosock")
  5329. Return: AX = status (see #03432)
  5330. Notes:    This function calls AX=0007/BX=0002h with the port count set to 1 and
  5331.       the port type set to 00h
  5332. SeeAlso: AX=0007h/BX=0002h,AX=0007h/BX=0004h,AX=0007h/BX=000Ah
  5333. --------N-610007BX0002-----------------------
  5334. INT 61 - Banyan VINES - GET PORTS FOR A SERVICE
  5335.     AX = 0007h
  5336.     BX = 0002h
  5337.     DS:DX -> StreetTalk service name
  5338.     DS:DI -> port record block (see #03433)
  5339. Return: AX = status (see #03432)
  5340. Note:    if the requested number of ports is greater than five, it will be reset
  5341.       to five
  5342. SeeAlso: AX=0007h/BX=0001h,AX=0007h/BX=0003h,AX=0007h/BX=0004h
  5343. SeeAlso: AX=0007h/BX=000Ah
  5344.  
  5345. Format of VINES port record block:
  5346. Offset    Size    Description    (Table 03433)
  5347.  00h    WORD    (call) number of 17-byte elements (01h-05h) to be filled
  5348.  02h    BYTE    (call) port type for first port
  5349.  03h 16 BYTEs    (ret) port (see #03328)
  5350.  13h    BYTE    (call) port type for second port
  5351.  14h 16 BYTEs    (ret) port (see #03328)
  5352.  24h    BYTE    (call) port type for third port
  5353.  25h 16 BYTEs    (ret) port (see #03328)
  5354.  35h    BYTE    (call) port type for fourth port
  5355.  36h 16 BYTEs    (ret) port (see #03328)
  5356.  46h    BYTE    (call) port type for fifth port
  5357.  47h 16 BYTEs    (ret) port (see #03328)
  5358.  57h    BYTE    reserved
  5359. SeeAlso: #03435
  5360. --------N-610007BX0003-----------------------
  5361. INT 61 - Banyan VINES - FIND A SERVICE
  5362.     AX = 0007h
  5363.     BX = 0003h
  5364.     DS:DX -> port control block (see #03434)
  5365. Return: AX = status (see AX=0007h/BX=0000h)
  5366. SeeAlso: AX=0007h/BX=0002h,AX=0007h/BX=0004h,AX=0007h/BX=0005h
  5367.  
  5368. Format of port control block:
  5369. Offset    Size    Description    (Table 03434)
  5370.  00h    WORD    ???
  5371.  02h    WORD    ???
  5372.  04h 16    BYTEs    IPC port (see #03328 at AX=0001h"Sosock")
  5373.  14h  5    WORDs    ???
  5374. SeeAlso: #03440
  5375. --------N-610007BX0004-----------------------
  5376. INT 61 - Banyan VINES - SET PORTS FOR A SERVICE
  5377.     AX = 0007h
  5378.     BX = 0004h
  5379.     DS:DX -> StreetTalk name of service (max 64 bytes)
  5380.     DS:DI -> port record block (see #03435)
  5381. Return: AX = status (see #03432)
  5382. SeeAlso: AX=0007h/BX=0002h,AX=0007h/BX=0003h,AX=0007h/BX=000Ah
  5383.  
  5384. Format of VINES port record block:
  5385. Offset    Size    Description    (Table 03435)
  5386.  00h    WORD    number of 17-byte elements
  5387.  02h    BYTE    port type for first port
  5388.  03h 16 BYTEs    first IPC port (see #03328)
  5389.  13h    BYTE    port type for second port
  5390.  14h 16 BYTEs    second IPC port (see #03328)
  5391.  24h    BYTE    port type for third port
  5392.  25h 16 BYTEs    third IPC port (see #03328)
  5393.  35h    BYTE    port type for fourth port
  5394.  36h 16 BYTEs    fourth IPC port (see #03328)
  5395.  46h    BYTE    port type for fifth port
  5396.  47h 16 BYTEs    fifth IPC port (see #03328)
  5397.  57h    BYTE    reserved
  5398. SeeAlso: #03433
  5399. --------N-610007BX0005-----------------------
  5400. INT 61 - Banyan VINES - GET USER NAME
  5401.     AX = 0007h
  5402.     BX = 0005h
  5403.     DS:DX -> 64-byte buffer for user's StreetTalk name
  5404. Return: AX = status (see also #03432)
  5405.         0000h successful
  5406.         0001h network software not installed or incompatible
  5407. Note:    if no user logged in, first byte of returned name will be 00h
  5408. SeeAlso: AX=0007h/BX=0007h
  5409. --------N-610007BX0006-----------------------
  5410. INT 61 - Banyan VINES - TRANSLATE ERROR INTO ASCII STRING
  5411.     AX = 0007h
  5412.     BX = 0006h
  5413.     SI = error code (>100)
  5414.     DS:DX -> 80-byte buffer for error text
  5415. Return: AX = status (see also #03432)
  5416.         0000h successful
  5417.         0001h network software not installed or incompatible
  5418. --------N-610007BX0007-----------------------
  5419. INT 61 - Banyan VINES - VERIFY EXISTENCE OF NAME AND RETURN CANONICAL FORM
  5420.     AX = 0007h
  5421.     BX = 0007h
  5422.     DS:DX -> NiceName block (see #03436)
  5423. Return: AX = status (see #03432)
  5424. SeeAlso: AX=0007h/BX=0005h,AX=0007h/BX=0008h
  5425.  
  5426. Format of VINES NiceName block:
  5427. Offset    Size    Description    (Table 03436)
  5428.  00h    WORD    type of name
  5429.         0064h (100) organization
  5430.         00C8h (200) group
  5431.         012Ch (300) item
  5432.  02h    WORD    pointer to ASCIZ input name
  5433.  04h    WORD    pointer to 64-byte buffer for output name
  5434. SeeAlso: #03437
  5435. --------N-610007BX0008-----------------------
  5436. INT 61 - Banyan VINES - ENUMERATE StreetTalk NAMES
  5437.     AX = 0007h
  5438.     BX = 0008h
  5439.     DS:DX -> enumerate block (see #03437)
  5440. Return: AX = status (see also #03432)
  5441.         0000h successful
  5442.         0411h all matching names have been returned
  5443.         0412h some groups unavailable, all available matches returned
  5444. Note:    each program using this call should continue until a nonzero status
  5445.       is returned; otherwise, some resources will not be freed for several
  5446.       hours
  5447. SeeAlso: AX=0007h/BX=0005h,AX=0007h/BX=0007h,AX=0007h/BX=0009h
  5448.  
  5449. Format of VINES enumerate block:
  5450. Offset    Size    Description    (Table 03437)
  5451.  00h    WORD    return code
  5452.  02h    WORD    pointer to pattern string
  5453.  04h    WORD    enumerate type
  5454.         0064h (100) organization
  5455.         00C8h (200) group
  5456.         012Ch (300) item
  5457.  06h    WORD    enumerate class
  5458.         0000h unspecified (return all matching items)
  5459.         0001h user names
  5460.         0002h service names
  5461.         0003h list names
  5462.         0004h nicknames
  5463.  08h    WORD    pointer to category criteria block (see #03438) or 0
  5464.  0Ah    WORD    pointer to array of 64-byte returned names
  5465.  0Ch    WORD    number of names returned
  5466.  0Eh  6 BYTEs    reserved for subsequent enumerated calls (set to zeros on first
  5467.           call)
  5468. SeeAlso: #03436
  5469.  
  5470. Format of category criteria block:
  5471. Offset    Size    Description    (Table 03438)
  5472.  00h    WORD    exclude flag
  5473.         0000h return only items with the specified categories
  5474.         0001h return all items except those with the given categories
  5475.  02h    WORD    number of categories (max 5, 0000h = match all categories)
  5476.  04h    WORD    category 1 value (see #03439)
  5477.  06h    WORD    category 2 value
  5478.  08h    WORD    category 3 value
  5479.  0Ah    WORD    category 4 value
  5480.  0Ch    WORD    category 5 value
  5481. SeeAlso: #03437
  5482.  
  5483. (Table 03439)
  5484. Values for common VINES service categories:
  5485.  0001h    server service
  5486.  0002h    file service
  5487.  0003h    print service
  5488.  0004h    mail service
  5489.  0005h    StreetTalk
  5490.  0006h    time service
  5491.  0007h    FTP service
  5492.  0008h    semaphore service
  5493.  0009h    3270/SNA service
  5494.  000Ah    terminal emulation service
  5495.  000Bh    asynchronous terminal service
  5496.  000Ch    NETBIOS service
  5497.  000Dh    PC-based service
  5498.  000Eh    BSC service
  5499.  000Fh    APPC service
  5500.  0010h    NM service
  5501.  0011h    VS service
  5502.  0012h    POP service
  5503.  0013h    AFP service
  5504.  0014h    VCS service
  5505.  0015h    EMS service
  5506.  0016h    LN service
  5507.  0017h    BS service
  5508.  0023h    RIPL service
  5509.  0064h    ADM service
  5510. SeeAlso: #03438
  5511. --------N-610007BX0009-----------------------
  5512. INT 61 - Banyan VINES - TRANSLATE ERROR INTO ASCII STRING (SELECTED PORT)
  5513.     AX = 0007h
  5514.     BX = 0009h
  5515.     SI = error code
  5516.     DS:DX -> 80-byte buffer for error text
  5517.     DS:DI -> IPC port (16 bytes; see AX=0001h#"Sosock" for port format)
  5518. Return: AX = status (see AX=0007h/BX=0000h)
  5519. Note:    Same as AX=0007h/BX=0006h, except IPC port is specified explicitly
  5520. SeeAlso: AX=0007h/BX=0006h
  5521. --------N-610007BX000A-----------------------
  5522. INT 61 - Banyan VINES - internal, OS/2 only - GET MANY PORTS FOR SERVICE
  5523.     AX = 0007h
  5524.     BX = 000Ah
  5525.     DS:DX -> port control block (see #03440)
  5526. Return: AX = status (see AX=0007h/BX=0000h)
  5527. Note:    This function cannot be called from applications, as the DS register
  5528.       is checked against the redirector data segment address (status code
  5529.       0001h will be returned if DS doesn't match)
  5530. SeeAlso: AX=0007h/BX=0001h,AX=0007h/BX=0002h,AX=0007h/BX=0004h
  5531.  
  5532. Format of port control block:
  5533. Offset    Size    Description    (Table 03440)
  5534.  00h    WORD    ???
  5535.  02h    WORD    ???
  5536.  04h 16    BYTEs    IPC port (see #03328 at AX=0001h"Sosock")
  5537.  14h 14 WORDs    ???
  5538. SeeAlso: #03434
  5539. --------V-610008-----------------------------
  5540. INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - SET ZOOM OFFSET
  5541.     AX = 0008h
  5542.     BX = X start of zoom offset
  5543.     CX = Y start of zoom offset
  5544. Desc:    specifies the first byte of video memory to appear in the zoom window
  5545. Range:    unknown
  5546. Notes:    INT 61 is the default interrupt; the actual interrupt number can be
  5547.       obtained by calling INT 16/AH=FFh
  5548.     not all vendors include the Tseng TSR which supports these functions
  5549. SeeAlso: AX=0000h"OPTIMA",AX=0006h"OPTIMA",INT 16/AH=FFh"OPTIMA"
  5550. --------N-610008BX0000-----------------------
  5551. INT 61 - Banyan VINES - TALKPORT SERVICE - GET HANDLER ADDRESS
  5552.     AX = 0008h
  5553.     BX = 0000h
  5554. Return: AX = status
  5555.         0000h successful
  5556.     ES:DX = far pointer to handler
  5557. Desc:    The TalkPort is a facility to display event messages (e.g. mail
  5558.       received, printing on a local printer, ...) on the screen
  5559. Note:    This service is handled by the redirector
  5560. SeeAlso: AX=0008h/BX=0001h,AX=0008h/BX=0002h
  5561. --------N-610008BX0001-----------------------
  5562. INT 61 - Banyan VINES - TALKPORT SERVICE - SET HANDLER ADDRESS
  5563.     AX = 0008h
  5564.     BX = 0001h
  5565.     ES:DX -> new handler
  5566. Return: AX = status
  5567.         0000h successful
  5568. SeeAlso: AX=0008h/BX=0000h
  5569. --------N-610008BX0002-----------------------
  5570. INT 61 - Banyan VINES - TALKPORT SERVICE - POST MESSAGE ON LOCAL DISPLAY
  5571.     AX = 0008h
  5572.     BX = 0002h
  5573.     CX = message display flags (see #03441)
  5574.     DS:DX -> ASCIZ string to display (only first 80 chars used)
  5575. Return: AX = status
  5576.         0000h successful
  5577.         000Bh message display function currently busy
  5578.         000Ch message queue full
  5579. Notes:    queues up to three messages to be displayed on the bottom line
  5580.     This service is handled by the redirector
  5581.     In a DOS session, TalkPort messages are displayed on display line 25;
  5582.       in a Windows session, TalkPort messages are displayed in dialog boxes
  5583. SeeAlso: AX=0008h/BX=0000h,AX=0008h/BX=0003h
  5584.  
  5585. Bitfields for VINES message display flags:
  5586. Bit(s)    Description    (Table 03441)
  5587.  0    message will remain on screen until user presses ^X
  5588.  1    ring bell after displaying message
  5589.  2    blink
  5590. --------N-610008BX0003-----------------------
  5591. INT 61 - Banyan VINES - TALKPORT SERVICE - INTERCEPT VINES 25th-LINE MESSAGES
  5592.     AX = 0008h
  5593.     BX = 0003h
  5594.     DS:DX -> request block (see #03442)
  5595. Return: AX = status
  5596.         0000h successful
  5597.         0001h network software not installed or incompatible
  5598. Notes:    message handler should not call BIOS or DOS functions, and should
  5599.       either call next handler or simply return
  5600.     to stop intercepting messages, set prev and next request blocks to
  5601.       point at each other
  5602. SeeAlso: AX=0008h/BX=0002h
  5603.  
  5604. Format of VINES request block for 25-th line messages:
  5605. Offset    Size    Description    (Table 03442)
  5606.  00h    DWORD    pointer to user-written message handler
  5607.  04h    DWORD    pointer to next request block (filled in by VINES)
  5608.  08h    DWORD    pointer to previous request block (filled in by VINES)
  5609.  0Ch    DWORD    pointer to message storage area (filled by VINES) (see #03443)
  5610.  
  5611. Format of message storage area:
  5612. Offset    Size    Description    (Table 03443)
  5613.  00h 16 BYTEs    IPC port of message sender (see #03328)
  5614.  10h    BYTE    message flags
  5615.  11h    WORD    reserved
  5616.  13h    BYTE    length of message
  5617.  14h 80 BYTEs    message text
  5618. SeeAlso: #03442
  5619. --------N-610009-----------------------------
  5620. INT 61 - Banyan VINES - NETBIOS CLIENT SERVICE
  5621.     AX = 0009h
  5622.     other parameters, if any, unknown
  5623. --------N-61000A-----------------------------
  5624. INT 61 - Banyan VINES - SECONDARY 3270 INTERFACE
  5625.     AX = 000Ah
  5626. Note:    either 3270/SNA or 3270/BSC interface will use AX=000Ah, depending on
  5627.       which is loaded second.  The first interface loaded will use AX=0002h
  5628. SeeAlso: INT 61/AX=0002h
  5629. --------N-61000B-----------------------------
  5630. INT 61 - Banyan VINES - SEMAPHORE SERVICE
  5631.     AX = 000Bh
  5632.     other parameters, if any, unknown
  5633. --------N-61000C-----------------------------
  5634. INT 61 - Banyan VINES - 3270 KEYBOARD HANDLER
  5635.     AX = 000Ch
  5636.     other parameters, if any, unknown
  5637. --------N-61000D-----------------------------
  5638. INT 61 - Banyan VINES - T3270 SERVICE FUNCTION
  5639.     AX = 000Dh
  5640.     other parameters, if any, unknown
  5641. --------N-61000E-----------------------------
  5642. INT 61 - Banyan VINES - ENHANCED 3270 SERVICE
  5643.     AX = 000Eh
  5644.     other parameters, if any, unknown
  5645. --------N-61000F-----------------------------
  5646. INT 61 - Banyan VINES - VINES SOCKET API (FAR DATA)
  5647.     AX = 000Fh
  5648.     CX:BX -> request block (see #03444)
  5649.     DX = application's data segment (should be = CX)
  5650.     ES = DS
  5651. Return: AX = status
  5652.         0000h successful
  5653.         0099h invalid operation
  5654.         00A5h resource not available
  5655. Desc:    StreetTalk access with session handles
  5656. Notes:    This service is handled by the adapter driver
  5657.     The request dispatch table contains dummy entries for subfunctions
  5658.       06h, 0Dh, 0Eh, 0Fh, 10h, and 11h, which always return error 0099h
  5659.       (invalid operation) in the request block's result buffer
  5660.     This interface does the same as the corresponding AX=0001h interface,
  5661.       but with a slightly modified request block structure (i.e it allows
  5662.       FAR parameter block pointers) and without expecting DS=0001h
  5663.     Some adapter drivers (e.g. the NDIS2 token ring driver NDTOKBAN for
  5664.       VINES 5.53) ignore the value in CX and use the value from DX instead
  5665. SeeAlso: AX=0001h/SF=0001h,AX=000Fh/SF=0001h
  5666.  
  5667. Format of VINES Socket request block:
  5668. Offset    Size    Description    (Table 03444)
  5669.  00h    WORD    subfunction number (01h-16h)
  5670.  02h    WORD    magic number (FEFEh)
  5671.  04h    WORD    buffer for return code (set to 0 before calling)
  5672.  06h    WORD    reserved (will be set to client DS)
  5673.  08h    WORD    reserved (obviously not used; set to 0 before calling)
  5674.  0Ah    DWORD    far pointer to parameter block
  5675.  0Eh    WORD    StreetTalk handle
  5676. SeeAlso: #03324 at INT 61/AX=0001h
  5677. --------N-61000FSF0001-----------------------
  5678. INT 61 - Banyan VINES - OPEN SOCKET
  5679.     AX = 000Fh subfn 0001h
  5680.     CX:BX -> request block (see #03445)
  5681.     DX = application's data segment (should be = CX)
  5682.     ES = DS
  5683. Return: AX = status
  5684.         0000h successful
  5685.         00A5h resource not available
  5686. Desc:    Opens a socket and returns a socket handle
  5687.  
  5688. Format of request block:
  5689. Offset    Size    Description    (Table 03445)
  5690.  00h    WORD    0001h
  5691.  02h    WORD    magic number (FEFEh)
  5692.  04h    WORD    buffer for return code (set to 0 before calling)
  5693.  06h    WORD    reserved (will be set to client DS)
  5694.  08h    WORD    reserved (obviously not used; set to 0 before calling)
  5695.  0Ah    DWORD    far pointer to parameter block (see #03446)
  5696.  0Eh    WORD    process handle (see AX=000Fh/SF=0008h)
  5697.  
  5698. Format of parameter block:
  5699. Offset    Size    Description    (Table 03446)
  5700.  00h    WORD    reserved
  5701.  02h    WORD    address family (0003h = VINES)
  5702.  04h    WORD    socket type (0001h = IPC, 0002h = SPP)
  5703.  06h    WORD    protocol number (FFFFh = default protocol)
  5704.  08h    WORD    reserved
  5705.  0Ah    WORD    local port number (0 = transient, 1..1FFh = well-known port)
  5706.  0Ch    DWORD    far pointer to socket handle buffer (2 bytes)
  5707.  10h    DWORD    far pointer to IPC port buffer (16 bytes)
  5708. SeeAlso: #03445
  5709. --------N-61000FSF0002-----------------------
  5710. INT 61 - Banyan VINES - SEND MESSAGE ON A SOCKET
  5711.     AX = 000Fh subfn 0002h
  5712.     CX:BX -> request block (see #03447)
  5713.     DX = application's data segment (should be = CX)
  5714.     ES = DS
  5715. Return: AX = status
  5716.         0000h successful
  5717.         00A5h resource not available
  5718. Desc:    send data to a socket identified by its socket handle
  5719.  
  5720. Format of request block:
  5721. Offset    Size    Description    (Table 03447)
  5722.  00h    WORD    0002h
  5723.  02h    WORD    magic number (FEFEh)
  5724.  04h    WORD    buffer for return code (set to 0 before calling)
  5725.  06h    WORD    reserved (will be set to client DS)
  5726.  08h    WORD    reserved (obviously not used; set to 0 before calling)
  5727.  0Ah    DWORD    far pointer to parameter block (see #03448)
  5728.  0Eh    WORD    process handle (see AX=000Fh/SF=0008h)
  5729.  
  5730. Format of parameter block:
  5731. Offset    Size    Description    (Table 03448)
  5732.  00h    WORD    buffer for estimated communication cost in 220 msec ticks
  5733.  02h    WORD    buffer for return code (set to 0 before calling)
  5734.  04h    WORD    socket handle
  5735.  06h    DWORD    far pointer to IPC/SPP message buffer
  5736.  0Ah    WORD    length of IPC/SPP message buffer
  5737.  0Ch    WORD    option flags
  5738.         bit 0: asynchronous communication
  5739.         bit 1: reliable message
  5740.         bit 3: end of message
  5741.         bit 4: vectored I/O
  5742.  0Eh 16    BYTEs    socket address (IPC port of source)
  5743.  1Eh    WORD    not used (set to 0 before calling)
  5744.  20h    WORD    SPP connection id (0 for IPC messages)
  5745.  22h    WORD    request type (1 = data, 2 = connect SPP, 3 = disconnect SPP)
  5746. SeeAlso: #03447
  5747. --------N-61000FSF0004-----------------------
  5748. INT 61 - Banyan VINES - CLOSE SOCKET
  5749.     AX = 000Fh subfn 0004h
  5750.     CX:BX -> request block (see #03449)
  5751.     DX = application's data segment (should be = CX)
  5752.     ES = DS
  5753. Return: AX = status
  5754.         0000h successful
  5755.         00A5h resource not available
  5756. Desc:    Closes a socket identified by its socket handle
  5757.  
  5758. Format of request block:
  5759. Offset    Size    Description    (Table 03449)
  5760.  00h    WORD    0004h
  5761.  02h    WORD    magic number (FEFEh)
  5762.  04h    WORD    buffer for return code (set to 0 before calling)
  5763.  06h    WORD    reserved (will be set to client DS)
  5764.  08h    WORD    reserved (obviously not used; set to 0 before calling)
  5765.  0Ah    DWORD    far pointer to socket handle (2 bytes)
  5766.  0Eh    WORD    process handle (see AX=000Fh/SF=0008h)
  5767. --------N-61000FSF0008-----------------------
  5768. INT 61 - Banyan VINES - GET PROCESS HANDLE
  5769.     AX = 000Fh subfn 0008h
  5770.     CX:BX -> request block (see #03450)
  5771.     DX = application's data segment (should be = CX)
  5772.     ES = DS
  5773. Return: AX = status
  5774.         0000h successful
  5775.         00A5h resource not available
  5776. Desc:    Returns a process handle to be used in other request blocks
  5777. Notes:    This function is a prerequisite to all AX=000Fh subfunctions which
  5778.       expect a process handle in the request block
  5779.     Although subsequent calls from the same application return different
  5780.       process handles, there seem to be no restrictions on how many times
  5781.       an application may call this function (in fact, the code in the VINES
  5782.       toolkit library always calls it before issueing other AX=000Fh calls)
  5783.  
  5784. Format of request block:
  5785. Offset    Size    Description    (Table 03450)
  5786.  00h    WORD    0008h
  5787.  02h    WORD    magic number (FEFEh)
  5788.  04h    WORD    buffer for return code (set to 0 before calling)
  5789.  06h    WORD    reserved
  5790.  08h    WORD    reserved (obviously not used; set to 0 before calling)
  5791.  0Ah    DWORD    process type (1 = transient, 2 = resident; destroyed on exit)
  5792.  0Eh    WORD    buffer for process handle
  5793. --------N-610010-----------------------------
  5794. INT 61 - Banyan VINES - INTERFACE TO NBNS
  5795.     AX = 0010h
  5796.     other parameters, if any, unknown
  5797. --------N-6101-------------------------------
  5798. INT 61 - Banyan VINES - CHECK SERVICE
  5799.     AH = 01h
  5800.     AL = service ID (see #03451)
  5801. Return: AX = status
  5802.         0000h installed
  5803.         0001h not installed
  5804.         0002h invalid ID
  5805.         0003h invalid function
  5806. Note:    Only the offset part of the service pointer is checked for a nonzero
  5807.       value
  5808. SeeAlso: AH=00h,AH=02h"VINES",AH=03h"VINES"
  5809.  
  5810. (Table 03451)
  5811. Values for VINES service ID:
  5812.  01h    communications
  5813.  02h    primary 3270 emulation
  5814.  03h    async terminal emulation
  5815.  04h    file deflection
  5816.  05h    print service control
  5817.  06h    get address of something
  5818.  07h    StreetTalk access service
  5819.  08h    environment
  5820.  09h    NETBIOS client service
  5821.  0Ah    secondary 3270 emulation
  5822.  0Bh    semaphore service
  5823.  0Ch    3270 emulation active status
  5824.  0Dh    T3270 keyboard interrupt simulator
  5825.  0Eh    enhanced 3270 service
  5826.  0Fh    comm Windows entry point
  5827.  10h    interface to NBNS
  5828. --------N-6101--BX0000-----------------------
  5829. INT 61 u - PC/TCP kernel v2.1+ - "net_config" - CONFIGURE RUNNING KERNEL
  5830.     AH = 01h
  5831.     BX = 0000h
  5832.     DH = tag number
  5833.     DL = device number
  5834.     DS:SI -> buffer to send to kernel
  5835.     ES:DI -> integer containing size of buffer
  5836. Return: CF clear if successful
  5837.     CF set on error
  5838.         AX = error code (see #03319 at INT 61"FTP Software")
  5839. Range:    INT 20 to INT E0, selected by configuration
  5840. Notes:    there are a large number of tags available; the items returned
  5841.       all refer to local kernel configuration, and are not needed in
  5842.       normal use.
  5843.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  5844. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=02h"PC/TCP"
  5845. --------N-6102-------------------------------
  5846. INT 61 - Banyan VINES - GET REVISION NUMBER
  5847.     AH = 02h
  5848.     DS:DX -> 2-byte buffer for result
  5849. Return: AX = 0000h installed
  5850.         DS:DX buffer contains revision number as
  5851.         10000d * major_ver + 100d * minor_ver + patch_revision
  5852. SeeAlso: AH=01h"VINES",AH=04h"VINES",AH=07h"VINES"
  5853. --------N-6102--BX0000-----------------------
  5854. INT 61 u - PC/TCP kernel v2.1+ - "get_kernel_info" - GET MISCELLAN LOCAL INFO
  5855.     AH = 02h
  5856.     BX = 0000h
  5857.     DH = tag number
  5858.     DL = device number
  5859.     DS:SI -> buffer for result (up to 48 bytes for version <= 2.2)
  5860.     ES:DI -> integer containing size of buffer
  5861. Return: CF clear if successful
  5862.         Data loaded into specified buffer, and size value altered
  5863.     CF set on error
  5864.         AX = error code (see #03319 at INT 61"FTP Software")
  5865. Range:    INT 20 to INT E0, selected by configuration
  5866. Notes:    there are a large number of tags available; the items returned
  5867.       all refer to local kernel configuration, and are not needed in
  5868.       normal use.
  5869.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  5870. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=01h"PC/TCP"
  5871. --------N-6103-------------------------------
  5872. INT 61 - Banyan VINES - INSTALL SERVICE HANDLER
  5873.     AH = 03h
  5874.     AL = service ID (see #03451)
  5875.     DS:DX -> new service handler
  5876. Return: AX = 0000h successful
  5877. SeeAlso: AH=00h,AH=01h"VINES",AH=02h"VINES",AH=05h"VINES"
  5878. --------N-6104-------------------------------
  5879. INT 61 - Banyan VINES - CHECK VINES REVISION NUMBER IN RANGE
  5880.     AH = 04h
  5881.     DS:DX -> 2-byte buffer containing the VINES revision number
  5882.         DS:DX buffer contains revision number as
  5883.         10000d * major_ver + 100d * minor_ver + patch_revision
  5884. Return: AX = status
  5885.         0000h valid version
  5886.         0004h out of range
  5887. Note:    For Revision 5.53, the valid range is 4.10(0) to 6.19(99)
  5888. SeeAlso: AH=02h"VINES",AH=07h"VINES",AH=08h"VINES"
  5889. --------N-6105-------------------------------
  5890. INT 61 - PC/TCP kernel v2.05+ - "get_addr" - GET INTERNET ADDRESS OF NET DESCR
  5891.     AH = 05h
  5892.     BX = network descriptor
  5893. Return: CF clear if successful
  5894.         DX:AX = Internet address of ND
  5895.     CF set on error
  5896.         AX = error code (see #03319 at INT 61"FTP Software")
  5897. InstallCheck:    test for the signature "TCPTSR" three bytes beyond the start
  5898.       of the interrupt handler
  5899. Range:    INT 20 to INT E0, selected by configuration
  5900. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=16h"PC/TCP"
  5901. SeeAlso: INT 63/AH=25h"BW-TCP"
  5902. --------N-6105-------------------------------
  5903. INT 61 - Banyan VINES - READ PCCONFIG BYTES
  5904.     AH = 05h
  5905.     CX = number of bytes to copy
  5906.         (max. 0175h for VINES 4.00, max. 017Fh for VINES 4.10+)
  5907.     SI = offset of area to be copied (see #03452,#03453)
  5908. Return: AX = status
  5909.         0000h successful
  5910.         0004h out of range
  5911. Notes:    The PCCONFIG area is located in the code segment of the BANV handler
  5912.     To find out which PCCONFIG structure applies, call this function first
  5913.       with CX=0006h to get the VINES revision number
  5914. SeeAlso: AH=02h"VINES",AH=04h"VINES",AH=06h"VINES",AH=0Bh"VINES"
  5915.  
  5916. Format of PCCONFIG area (VINES 4.00):
  5917. Offset    Size    Description    (Table 03452)
  5918.  00h  6    BYTEs    VINES revision (ASCII, zero-padded)
  5919.  06h  2    BYTEs    NEWREV-number (ASCII, two digits)
  5920.  08h    WORD    hardware interrupt level
  5921.  0Ah    WORD    DMA channel
  5922.  0Ch    WORD    I/O address
  5923.  0Eh    DWORD    adapter ROM address (linear)
  5924.  12h    DWORD    adapter RAM address (linear)
  5925.  16h    WORD    BANV interrupt
  5926.  18h 32    BYTEs    default login group #1
  5927.  38h 32    BYTEs    default login group #2
  5928.  58h 32    BYTEs    default login group #3
  5929.  78h    WORD    semaphore locking support flag
  5930.  7Ah    WORD    extended StreetTalk flag
  5931.  7Ch    WORD    maximum number of file volumes
  5932.  7Eh    WORD    NetBIOS flag
  5933.  80h 60    BYTEs    default network adapter
  5934.  BCh 60    BYTEs    default communications driver
  5935.  F8h    WORD    maximum number of SPP connections
  5936.  FAh    WORD    maximum number of open sockets
  5937.  FCh    WORD    communications buffer size (10..60 KB)
  5938.  FEh 20    BYTEs    location directory on drive Z:
  5939. 112h 33    BYTEs    auxiliary configuration area #1 (see #03454)
  5940. 133h 33    BYTEs    auxiliary configuration area #2
  5941. 154h 33    BYTEs    auxiliary configuration area #3
  5942. SeeAlso: #03453
  5943.  
  5944. Format of PCCONFIG area (VINES 4.10+):
  5945. Offset    Size    Description    (Table 03453)
  5946.  00h  6    BYTEs    VINES revision (ASCII, zero-padded)
  5947.  06h  2    BYTEs    NEWREV-number (ASCII, two digits)
  5948.  08h    WORD    hardware interrupt level
  5949.  0Ah    WORD    DMA channel
  5950.  0Ch    WORD    I/O address
  5951.  0Eh    DWORD    adapter ROM address (linear)
  5952.  12h    DWORD    adapter RAM address (linear)
  5953.  16h    WORD    BANV interrupt
  5954.  18h 32    BYTEs    default login group #1
  5955.  38h 32    BYTEs    default login group #2
  5956.  58h 32    BYTEs    default login group #3
  5957.  78h    WORD    semaphore locking support flag
  5958.  7Ah    WORD    extended StreetTalk flag
  5959.  7Ch    WORD    named pipes support flag
  5960.  7Eh    WORD    maximum number of file volumes
  5961.  80h    WORD    NetBIOS flag
  5962.  82h 60    BYTEs    default network adapter
  5963.  BEh 60    BYTEs    default communications driver
  5964.  FAh    WORD    maximum number of SPP connections
  5965.  FCh    WORD    maximum number of open sockets
  5966.  FEh    WORD    communications buffer size (10..60 KB)
  5967. 100h    WORD    number of mailslots
  5968. 102h    WORD    maximum number of open files
  5969. 104h    WORD    maximum number of NetBIOS sessions
  5970. 106h    WORD    maximum number of NetBIOS commands
  5971. 108h 20    BYTEs    location directory on drive Z:
  5972. 11Ch 33    BYTEs    auxiliary configuration area #1 (see #03454)
  5973. 13Dh 33    BYTEs    auxiliary configuration area #2
  5974. 15Eh 33    BYTEs    auxiliary configuration area #3
  5975.  
  5976. Format of auxiliary configuration area:
  5977. Offset    Size    Description    (Table 03454)
  5978.  00h 16    BYTEs    item name (no zero terminator if length = 16)
  5979.  10h    BYTE    item value type (1=text, else numeric)
  5980.  11h 16    BYTEs    item value (string if type 1, else DWORD)
  5981. SeeAlso: #03452,#03453
  5982. --------N-6106-------------------------------
  5983. INT 61 - PC/TCP kernel v2.05 - "net_info" - GET INTERFACE STATISTICS
  5984.     AH = 06h
  5985.     BX = network descriptor (must be allocated and open)
  5986.     DS:SI -> 38-byte buffer for interface statistics (see #03455)
  5987. Return: CF clear if successful
  5988.         buffer filled
  5989.     CF set on error
  5990.         AX = error code (see #03319)
  5991. Desc:    returns the statistics relevant to the particular network interface
  5992.        used by the specified network descriptor
  5993. Range:    INT 20 to INT E0, selected by configuration
  5994. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=05h"PC/TCP"
  5995.  
  5996. Format of PC/TCP interface statistics:
  5997. Offset    Size    Description    (Table 03455)
  5998.  00h    WORD    interface class (e.g. 802.3)
  5999.  02h    WORD    type (manufacturer) of interface
  6000.  04h    WORD    interface number
  6001.  06h    DWORD    (big-endian) IP address of interface
  6002.  0Ah    DWORD    subnet mask
  6003.  0Eh    WORD    0001h if interface is up
  6004.  10h    DWORD    total packets received
  6005.  14h    DWORD    total packets sent
  6006.  18h    DWORD    receive errors
  6007.  1Ch    DWORD    send errors
  6008.  20h    WORD    length of local net address (e.g. 0006h for Ethernet)
  6009.  22h    DWORD    pointer to local net address
  6010. --------N-6106-------------------------------
  6011. INT 61 - Banyan VINES - GET PCCONFIG BASE ADDRESS
  6012.     AH = 06h
  6013.     DS:DX -> 4-byte buffer for far pointer to PCCONFIG area
  6014. Return: AX = 0000h successful
  6015. Note:    The PCCONFIG area is located in the code segment of the BANV handler
  6016. SeeAlso: AH=05h"VINES",AH=0Bh"VINES"
  6017. --------N-6107-------------------------------
  6018. INT 61 - PC/TCP kernel v2.05+ - "net_globalize" - MAKE NET DESCRIPTOR GLOBAL
  6019.     AH = 07h
  6020.     BX = local network descriptor
  6021. Return: CF clear if successful
  6022.         AX = global network descriptor
  6023.     CF set on error
  6024.         AX = error code (see #03319)
  6025. Notes:    the new network descriptor can be accessed from all processes and is
  6026.       independent of DOS
  6027.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  6028. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=08h"PC/TCP"
  6029. SeeAlso: INT 61/AH=29h
  6030. --------N-6107-------------------------------
  6031. INT 61 - Banyan VINES - GET VINES REVISION NUMBER (LONG)
  6032.     AH = 07h
  6033.     DS:DX -> 4-byte buffer for result
  6034. Return: AX = 0000h successful
  6035.         DS:DX buffer contains revision number as
  6036.         10000d * major_ver + 100d * minor_ver + patch_revision
  6037. SeeAlso: AH=02h"VINES",AH=04h"VINES",AH=08h"VINES"
  6038. --------b-6107-------------------------------
  6039. INT 61 - Atari Portfolio - FORMAT CREDIT CARD MEMORY
  6040.     AH = 07h
  6041.     AL = drive number (00h = A:,01h = B:)
  6042. Return: CF clear if successful
  6043.     CF set on error
  6044.         AH = error code (see #00234 at INT 13/AH=01h)
  6045. Note:    do not use this function to format the internal disk (drive number 02h)
  6046. SeeAlso: AH=00h"Portfolio",AH=08h"Portfolio",AH=09h"Portfolio"
  6047. --------N-6108-------------------------------
  6048. INT 61 - PC/TCP kernel v2.05+ - "net_release" - CLOSE A NETWORK DESCRIPTOR
  6049.     AH = 08h
  6050.     BX = network descriptor
  6051. Return: CF clear if successful
  6052.         AX = 0000h (BWPCTCP shim)
  6053.     CF set on error
  6054.         AX = error code (see #03319)
  6055. Range:    INT 20 to INT E0, selected by configuration
  6056. Note:    the descriptor will be closed and resources released.  If a stream
  6057.       descriptor, the protocol (FIN etc) is completed unless the
  6058.       non-blocking option has been set.
  6059. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=09h"PC/TCP"
  6060. SeeAlso: INT 63/AH=0Eh"BW-TCP"
  6061. --------N-6108-------------------------------
  6062. INT 61 - Banyan VINES - CHECK VINES REVISION NUMBER IN RANGE (LONG)
  6063.     AH = 08h
  6064.     DS:DX -> 4-byte buffer containing the VINES revision number
  6065.         DS:DX buffer contains revision number as
  6066.         10000d * major_ver + 100d * minor_ver + patch_revision
  6067. Return: AX = status
  6068.         0000h valid version
  6069.         0004h out of range
  6070. Note:    For Revision 5.53, the valid range is 4.10(0) to 6.19(99)
  6071. SeeAlso: AH=04h"VINES",AH=07h"VINES"
  6072. --------b-6108-------------------------------
  6073. INT 61 - Atari Portfolio - GET SIZE OF INTERNAL DISK
  6074.     AH = 08h
  6075. Return: AX = segment address of RAMdisk
  6076.     BX = size in KB
  6077. SeeAlso: AH=00h"Portfolio",AH=07h"Portfolio",AH=09h"Portfolio"
  6078. --------N-6109-------------------------------
  6079. INT 61 - PC/TCP kernel v2.05+ - "net_releaseall" - CLOSE ALL NON-GLOBAL DESCRS
  6080.     AH = 09h
  6081. Return: CF clear
  6082. Range:    INT 20 to INT E0, selected by configuration
  6083. Notes:    this call performs function 08h on every non-global network descriptor.
  6084.       Global descriptors must be released individually.
  6085. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=08h"PC/TCP"
  6086. SeeAlso: INT 63/AH=0Eh"BW-TCP"
  6087. --------N-6109-------------------------------
  6088. INT 61 - Banyan VINES - GET VALUE OF AN OS/2 BACKEND VARIABLE
  6089.     AH = 09h
  6090.     other parameters, if any, unknown
  6091. SeeAlso: AH=0Ah"VINES"
  6092. --------b-6109-------------------------------
  6093. INT 61 - Atari Portfolio - FORMAT INTERNAL DISK
  6094.     AH = 09h
  6095.     BX = desired size of disk in KB
  6096. Return: CF clear if successful
  6097.     CF set on error
  6098.         BX = maximum possible size in KB
  6099. Desc:    resize and erase the internal RAMdisk, then reboot the system
  6100. SeeAlso: AH=00h"Portfolio",AH=07h"Portfolio",AH=08h"Portfolio"
  6101. SeeAlso: AH=0Bh"Portfolio"
  6102. --------N-610A-------------------------------
  6103. INT 61 - PC/TCP kernel v2.05 - "net_send" - ???
  6104.     AH = 0Ah
  6105.     ???
  6106. Return: ???
  6107. Notes:    this function is described as "unused" in the v2.05 and v2.2
  6108.       documentation
  6109.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  6110. SeeAlso: AH=0Bh
  6111. --------N-610A-------------------------------
  6112. INT 61 - Banyan VINES - SET VALUE OF AN OS/2 BACKEND VARIABLE
  6113.     AH = 0Ah
  6114.     other parameters, if any, unknown
  6115. SeeAlso: AH=09h"VINES"
  6116. --------N-610B-------------------------------
  6117. INT 61 - PC/TCP kernel v2.05 - "net_sendto" - ???
  6118.     AH = 0Bh
  6119.     ???
  6120. Return: ???
  6121. Range:    INT 20 to INT E0, selected by configuration
  6122. Notes:    this function is described as "unused" in the v2.05 and v2.2
  6123.       documentation
  6124.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  6125. SeeAlso: AH=0Ah
  6126. --------N-610B-------------------------------
  6127. INT 61 - Banyan VINES - SET PCCONFIG IN BACKEND
  6128.     AH = 0Bh
  6129.     other parameters, if any, unknown
  6130. SeeAlso: AH=05h"VINES",AH=06h"VINES"
  6131. --------b-610B-------------------------------
  6132. INT 61 - Atari Portfolio - DETERMINE CCM VALIDITY
  6133.     AH = 0Bh
  6134.     AL = drive number (00h = A:,01h = B:)
  6135. Return: CF clear if successful (card present and correct)
  6136.     CF set on error
  6137.         AH = error code (see #00234 at INT 13/AH=01h)
  6138. SeeAlso: AH=00h"Portfolio",AH=07h"Portfolio",AH=0Dh"Portfolio"
  6139. --------N-610C-------------------------------
  6140. INT 61 u - PC/TCP kernel v2.05+ - "net_stat" - GET CONNECTION STATISTICS
  6141.     AH = 0Ch
  6142.     BX = network descriptor or one of the following:
  6143.         FFFCh for kernel ICMP statistics (see #03459)
  6144.         FFFDh for kernel UDP statistics (see #03458)
  6145.         FFFEh for kernel IP statistics (see #03457)
  6146.         FFFFh for kernel TCP statistics (see #03456)
  6147.     DS:DX -> 64-byte buffer
  6148. Return: CF clear if successful
  6149.         buffer filled
  6150.     CF set on error
  6151.         AX = error code (see #03319)
  6152. Notes:    the fields filled in for a network descriptor depend on the protocol
  6153.       family used by that descriptor's connection
  6154.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  6155. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"
  6156.  
  6157. Format of PC/TCP kernel TCP statistics:
  6158. Offset    Size    Description    (Table 03456)
  6159.  00h 16 BYTEs    unused
  6160.  10h    DWORD    bytes sent
  6161.  14h    DWORD    bytes received
  6162.  18h  8 BYTEs    unused
  6163.  20h    DWORD    packets sent
  6164.  24h    DWORD    packets received
  6165.  28h    DWORD    bad checksums
  6166.  2Ch    DWORD    count of window ignored by remote
  6167.  30h    DWORD    timeouts
  6168.  34h    DWORD    resets
  6169.  38h    DWORD    duplicate packets
  6170.  3Ch    DWORD    retransmits
  6171. SeeAlso: #03457,#03458,#03459
  6172.  
  6173. Format of PC/TCP kernel IP statistics:
  6174. Offset    Size    Description    (Table 03457)
  6175.  00h  8 BYTEs    unused
  6176.  08h    DWORD    invalid IP header length errors
  6177.  0Ch    DWORD    protocol errors (unwanted packets)
  6178.  10h    DWORD    duplicate fragments received
  6179.  14h    DWORD    bad fragments received
  6180.  18h    DWORD    security errors
  6181.  1Ch    DWORD    count of bad IP addresses received
  6182.  20h    DWORD    packets sent
  6183.  24h    DWORD    packets received
  6184.  28h    DWORD    bad checksums received
  6185.  2Ch    DWORD    total IP protocol errors
  6186.  30h    DWORD    fragmentation errors
  6187.  34h    DWORD    IP packets discarded + bad security + bad fragments
  6188.  38h    DWORD    fragments received
  6189.  3Ch  4 BYTEs    unused
  6190. SeeAlso: #03456,#03458,#03459
  6191.  
  6192. Format of PC/TCP kernel UDP statistics:
  6193. Offset    Size    Description    (Table 03458)
  6194.  00h 28 BYTEs    unused
  6195.  1Ch    DWORD    packets dropped for lack of buffers
  6196.  20h    DWORD    packets sent
  6197.  24h    DWORD    packets received
  6198.  28h    DWORD    bad checksums
  6199.  2Ch    DWORD    port not listening errors
  6200.  30h  4 BYTEs    unused
  6201.  34h    DWORD    truncated receives
  6202.  38h  8 BYTEs    unused
  6203. SeeAlso: #03456,#03457,#03459
  6204.  
  6205. Format of PC/TCP kernel ICMP statistics:
  6206. Offset    Size    Description    (Table 03459)
  6207.  00h    DWORD    "TimeEx" sent
  6208.  04h    DWORD    "TimeEx" received
  6209.  08h    DWORD    "ParamProb" sent
  6210.  0Ch    DWORD    "ParamProb" received
  6211.  10h    DWORD    redirects received
  6212.  14h    DWORD    source quenches received
  6213.  18h    DWORD    ICMP Echo Requests ("ping") sent
  6214.  1Ch    DWORD    ICMP Echo Requests received
  6215.  20h    DWORD    packets sent
  6216.  24h    DWORD    packets received
  6217.  28h    DWORD    bad packets received
  6218.  2Ch    DWORD    "DestUn" received
  6219.  30h    DWORD    packet send errors
  6220.  34h    DWORD    "DestUn" sent
  6221.  38h    DWORD    ICMP Echo replies received
  6222.  3Ch    DWORD    ICMP Echo replies sent
  6223. SeeAlso: #03456,#03457,#03458
  6224. --------N-610D-------------------------------
  6225. INT 61 - PC/TCP kernel v2.05+ - "is_netnd" - CHECK IF NETWORK DESCRIPTOR VALID
  6226.     AH = 0Dh
  6227.     BX = possible network descriptor
  6228. Return: CF clear if valid
  6229.     CF set on error
  6230.         AX = error code (see #03319 at INT 61"FTP Software")
  6231. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=08h"PC/TCP"
  6232. SeeAlso: INT 61/AH=22h
  6233. --------b-610D-------------------------------
  6234. INT 61 - Atari Portfolio - GET SCREEN SIZE
  6235.     AH = 0Dh
  6236. Return: AX = physical screen size (AH=rows, AL=columns)
  6237.     DX = logical screen size (DH=rows, DL=columns)
  6238. SeeAlso: AH=00h"Portfolio",AH=0Bh"Portfolio",AH=0Eh"Portfolio"
  6239. --------N-610E-------------------------------
  6240. INT 61 - PC/TCP kernel v2.05+ - "net_select" - DETECT READINESS OF NETWORK
  6241.     AH = 0Eh
  6242.     BX = maximum value of network descriptor for which to return info
  6243.     DS:DX -> 32-bit (max) array of bit flags for read readiness
  6244.     ES:DI -> 32-bit (max) array of bit flags for write readiness
  6245. Return: CF clear
  6246. InstallCheck:    test for the signature "TCPTSR" three bytes beyond the start
  6247.       of the interrupt handler
  6248. Range:    INT 20 to INT E0, selected by configuration
  6249. Notes:    bits in the DS:DX buffer are set if the corresponding network
  6250.       descriptor may be read without blocking; bits in the ES:DI buffer
  6251.       are set if the corresponding network descriptor may be written
  6252.       without blocking.  This implies that the network descriptor has
  6253.       opened correctly and the protocol initialized.
  6254. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"
  6255. --------b-610E-------------------------------
  6256. INT 61 - Atari Portfolio - GET/SET SCREEN MODE
  6257.     AH = 0Eh
  6258.     AL = function
  6259.         00h get mode
  6260.         01h set mode
  6261.         DL = new mode (see #03460)
  6262. Return: DL = current/old mode
  6263. Note:    if changing the mode places the cursor position or virtual screen
  6264.       origin outside the displayed area, the screen origin will be reset
  6265.       to (0,0), the screen cleared, and the cursor position set to (0,0)
  6266. SeeAlso: AH=00h"Portfolio",AH=0Dh"Portfolio",AH=0Fh"Portfolio",INT 10/AH=00h
  6267.  
  6268. Bitfields for Atari Portfolio screen mode:
  6269. Bit(s)    Description    (Table 03460)
  6270.  0    40x8 mode instead of 80x25
  6271.  1    tracked mode
  6272.  7    graphics
  6273. Note:    the above bits are mutually exclusive
  6274. --------N-610F-------------------------------
  6275. INT 61 - PC/TCP kernel v2.05+ - "get_netversion" - GET SOFTWARE VERSION
  6276.     AH = 0Fh
  6277. Return: CF clear
  6278.     AX = version (AH = major, AL = minor)
  6279.     BX = patch level
  6280. Notes:    patch levels are no longer used starting with version 2.10; instead,
  6281.       the minor version level is incremented.
  6282.     Beame&Whiteside's BWPCTCP v3.0a shim reports version 2.05, but does not
  6283.       set BX
  6284. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"
  6285. --------b-610F-------------------------------
  6286. INT 61 - Atari Portfolio - GET/SET CURSOR MODE
  6287.     AH = 0Fh
  6288.     AL = function
  6289.         00h get mode
  6290.         01h set mode
  6291.         BL = new cursor mode
  6292.             00h cursor off
  6293.             01h underline
  6294.             02h block
  6295.         02h force mode (set size to reflect NumLock state)
  6296. Return: BL = current/old cursor mode
  6297. SeeAlso: AH=00h"Portfolio",AH=0Eh"Portfolio",AH=10h"Portfolio",INT 10/AH=01h
  6298. --------N-6110-------------------------------
  6299. INT 61 - PC/TCP kernel v2.05+ - "net_shutdown" - UNINSTALL
  6300.     AH = 10h
  6301. Return: CF clear if successful
  6302.     CF set on error
  6303.         AX = error code (see #03319 at INT 61"FTP Software")
  6304. Range:    INT 20 to INT E0, selected by configuration
  6305. Note:    this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  6306. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"
  6307. --------b-6110-------------------------------
  6308. INT 61 - Atari Portfolio - GET/SET VIRTUAL SCREEN POSITION
  6309.     AH = 10h
  6310.     AL = function
  6311.         00h get position
  6312.         Return: DH,DL = current row,column
  6313.         01h set position
  6314.         DH = row
  6315.         DL = column
  6316. Desc:    get or specify the upper-left corner of the 40x8 window into the
  6317.       logical screen
  6318. SeeAlso: AH=00h"Portfolio",AH=0Eh"Portfolio",AH=0Fh"Portfolio"
  6319. SeeAlso: AH=11h"Portfolio"
  6320. --------N-6111-------------------------------
  6321. INT 61 - PC/TCP kernel v2.05+ - "disable_async" - DISABLE ASYNCHRONOUS HANDLERS
  6322.     AH = 11h
  6323. Return: CF clear
  6324.     AX = previous state
  6325.         0000h async calls were already disabled
  6326.         else  async calls were enabled
  6327. SeeAlso: INT 61"FTP Software",INT 61/AH=12h
  6328. --------b-6111-------------------------------
  6329. INT 61 - Atari Portfolio - MOVE VIRTUAL SCREEN ORIGIN
  6330.     AH = 11h
  6331.     AL = number of lines to move
  6332.     DL = direction of move (1=up, 2=down, 3=left, 4=right)
  6333. SeeAlso: AH=00h"Portfolio",AH=10h"Portfolio",AH=12h"Portfolio"
  6334. --------N-6112-------------------------------
  6335. INT 61 - PC/TCP kernel v2.05+ - "enable_async" - ENABLE ASYNCHRONOUS HANDLERS
  6336.     AH = 12h
  6337. Return: CF clear
  6338.     AX = previous state
  6339.         0000h async calls were disabled
  6340.         else  async calls were already enabled
  6341. SeeAlso: INT 61"FTP Software",INT 61/AH=11h
  6342. --------b-6112-------------------------------
  6343. INT 61 - Atari Portfolio - SCREEN REFRESH
  6344.     AH = 12h
  6345. Return: nothing
  6346. Desc:    copy contents of video RAM to LCD controller
  6347. SeeAlso: AH=10h"Portfolio",AH=11h"Portfolio",AH=15h"Portfolio"
  6348. --------N-6113-------------------------------
  6349. INT 61 - PC/TCP kernel v2.05 - "net_connect" - OPEN A NETWORK CONNECTION
  6350.     AH = 13h
  6351.     BX = network descriptor (FFFFh for automatic net_getdesc)
  6352.     DX = protocol (see #03461)
  6353.     DS:SI -> buffer for "addr" structure (see #03462)
  6354. Return: CF clear if successful
  6355.         AX = network descriptor used or allocated
  6356.     CF set on error
  6357.         AX = error code (see #03319 at INT 61"FTP Software")
  6358. Notes:    resets the connection with AH=19h in various cases
  6359.     will wait for protocol on stream connections unless non-blocking was
  6360.       set with AH=20h
  6361. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=18h,INT 61/AH=23h
  6362. SeeAlso: INT 63/AH=14h"BW-TCP"
  6363.  
  6364. (Table 03461)
  6365. Values for PC/TCP protocol:
  6366.  0001h    raw net (undocumented)
  6367.  0002h    raw IP
  6368.  0003h    datagram (UDP)
  6369.  0004h    stream (TCP)
  6370.  0005h    raw ICMP
  6371.  
  6372. Format of structure "addr":
  6373. Offset    Size    Description    (Table 03462)
  6374.  00h    DWORD    Internet address (network order)
  6375.  04h    WORD    remote socket number (network order)
  6376.  06h    WORD    local socket number (network order) 0000h means "you choose"
  6377.  08h    BYTE    protocol (see #03461)
  6378. --------N-6114-------------------------------
  6379. INT 61 Ou - PC/TCP kernel v2.05 - "net_recv" - NO LONGER SUPPORTED
  6380.     AH = 14h
  6381.     BX = network descriptor
  6382. Return: CF set
  6383.         AX = 0018h (see #03319 at INT 61"FTP Software")
  6384. Notes:    displays error message "Illegal system call!  Please upgrade your
  6385.       PCserver software" to standard output
  6386.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  6387. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=0Ah,INT 61/AH=15h
  6388. --------N-6115-------------------------------
  6389. INT 61 - PC/TCP kernel v2.05 - "net_recvfrom" - ???
  6390.     AH = 15h
  6391.     ???
  6392. Return: ???
  6393. Notes:    this function is described as "unused" in the v2.2 documentation
  6394.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  6395. SeeAlso: INT 61/AH=0Bh,INT 61/AH=14h
  6396. --------b-6115-------------------------------
  6397. INT 61 - Atari Portfolio - SOUND GENERATION
  6398.     AH = 15h
  6399.     AL = function
  6400.         00h key click
  6401.         01h beep
  6402.         02h alarm
  6403. Return: nothing
  6404. SeeAlso: AH=00h"Portfolio",AH=12h"Portfolio",AH=16h"Portfolio"
  6405. --------N-6116-------------------------------
  6406. INT 61 - PC/TCP kernel v2.05+ - "net_peer" - GET DATA ON REMOTE PEER
  6407.     AH = 16h
  6408.     BX = network descriptor
  6409.     DS:DX -> 9-byte buffer for "addr" structure (see #03462)
  6410. Return: CF clear if successful
  6411.         buffer filled
  6412.     CF set on error
  6413.         AX = error code (see #03319 at INT 61"FTP Software")
  6414. Range:    INT 20 to INT E0, selected by configuration
  6415. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"
  6416. --------b-6116-------------------------------
  6417. INT 61 - Atari Portfolio - MELODY TONE GENERATOR
  6418.     AH = 16h
  6419.     CX = length of tones in 1/100 sec
  6420.     DL = tone code (see #03463)
  6421. SeeAlso: AH=15h"Portfolio",AH=17h"Portfolio"
  6422.  
  6423. (Table 03463)
  6424. Values for Atari Portfolio tone code:
  6425.  04h    A6#01864.7 Hz
  6426.  05h    B6    1975.5 Hz
  6427.  06h    D7    2348.3 Hz
  6428.  07h    D7#    2489.0 Hz
  6429.  0Eh    F6#    1480.0 Hz
  6430.  25h    C7    2093.0 Hz
  6431.  29h    D6    1174.7 Hz
  6432.  2Ch    G6#    1661.2 Hz
  6433.  2Fh    C7#    2217.5 Hz
  6434.  30h    D5#    622.3 Hz
  6435.  31h    E5    659.3 Hz
  6436.  32h    F5    698.5 Hz
  6437.  33h    F5#    740.0 Hz
  6438.  34h    G5    784.0 Hz
  6439.  35h    G5#    830.6 Hz
  6440.  36h    A5    880.6 Hz
  6441.  37h    A5#    932.3 Hz
  6442.  38h    B5    987.8 Hz
  6443.  39h    C6    1046.5 Hz
  6444.  3Ah    C6#    1108.7 Hz
  6445.  3Bh    D6#    1244.5 Hz
  6446.  3Ch    E6    1318.5 Hz
  6447.  3Dh    F6    1396.9 Hz
  6448.  3Eh    G6    1568.9 Hz
  6449.  3Fh    A6    1760.0 Hz
  6450. --------N-6117-------------------------------
  6451. INT 61 - PC/TCP kernel v2.05+ - "net_reconfig" - RE-READ KERNEL CONFIGURATION
  6452.     AH = 17h
  6453. Return: CF clear if successful
  6454.     CF set on error
  6455.         AX = error code (see #03319 at INT 61"FTP Software")
  6456. Notes:    this routine is deprecated in v2.1+ and will eventually be withdrawn;
  6457.       in v2.1+, this function calls AH=01h which should be used instead
  6458.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  6459. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=01h"PC/TCP"
  6460. --------b-6117-------------------------------
  6461. INT 61 - Atari Portfolio - DIAL NUMBER
  6462.     AH = 17h
  6463.     DS:SI -> ASCII string containing number to dial
  6464.     CX = length of string
  6465. Note:    valid characters for string are "0123456789ABCD*#"
  6466. SeeAlso: AH=00h"Portfolio",AH=15h"Portfolio",AH=16h"Portfolio"
  6467. SeeAlso: AH=18h"Portfolio"
  6468. --------N-6118-------------------------------
  6469. INT 61 - PC/TCP kernel v2.05+ - "net_eof" - CLOSE TRANSMIT SIDE OF CONNECTION
  6470.     AH = 18h
  6471.     BX = network descriptor
  6472. Return: CF clear if successful
  6473.     CF set on error
  6474.         AX = error code (see #03319 at INT 61"FTP Software")
  6475. Note:    a TCP "FIN" command is sent and no further data may be transmitted,
  6476.       although the connection remains open
  6477. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=13h"PC/TCP"
  6478. SeeAlso: INT 63/AH=0Eh"BW-TCP"
  6479. --------b-6118-------------------------------
  6480. INT 61 - Atari Portfolio - MUTE STATES
  6481.     AH = 18h
  6482.     AL = function
  6483.         00h get mute state
  6484.         01h set mute state
  6485.         02h get key click state
  6486.         03h set key click state
  6487.         04h get beep state
  6488.         05h set beep state
  6489.         06h get alarm state
  6490.         07h set alarm state
  6491.         08h get DTMF duration
  6492.         09h set DTMF duration
  6493.     DL = new state ("set" functions) (00h off [muted], 01h on)
  6494. Return: DL = current state ("get" functions) (00h off [muted], 01h on)
  6495. SeeAlso: AH=15h"Portfolio",AH=16h"Portfolio",AH=17h"Portfolio"
  6496. SeeAlso: AH=19h"Portfolio"
  6497. --------N-6119-------------------------------
  6498. INT 61 - PC/TCP kernel v2.05+ - "net_abort" - RESET A NETWORK CONNECTION
  6499.     AH = 19h
  6500.     BX = network descriptor
  6501. Return: CF clear if successful
  6502.     CF set on error
  6503.         AX = error code (see #03319 at INT 61"FTP Software")
  6504. Desc:    immediately destroys the specified connection
  6505. Note:    send a TCP "RST" command if a stream connection is open
  6506. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=24h
  6507. --------b-6119-------------------------------
  6508. INT 61 - Atari Portfolio - GET SERIAL PORT PARAMETERS
  6509.     AH = 19h
  6510.     DX = serial port number
  6511. Return: AH = status
  6512.         00h successful
  6513.         AL = composite parameters (see #00300 at INT 14/AH=00h"SERIAL")
  6514.         other error
  6515. SeeAlso: AH=00h"Portfolio",AH=15h"Portfolio",AH=1Ah"Portfolio"
  6516. --------N-611A-------------------------------
  6517. INT 61 - PC/TCP kernel v2.05+ - "net_write" - WRITE TO THE NETWORK
  6518.     AH = 1Ah
  6519.     BX = network descriptor
  6520.     CX = number of bytes to transmit (0000h allowed)
  6521.     DX = send options (see #03464)
  6522.     DS:SI -> data to be written
  6523. Return: CF clear if successful
  6524.         AX = number of bytes actually written
  6525.         DX = ???
  6526.     CF set on error
  6527.         AX = error code (see #03319 at INT 61"FTP Software")
  6528. InstallCheck:    test for the signature "TCPTSR" three bytes beyond the start
  6529.       of the interrupt handler
  6530. Range:    INT 20h to INT E0h, selected by configuration
  6531. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=1Bh,INT 61/AH=1Ch
  6532. SeeAlso: INT 63/AH=19h"BW-TCP",INT 63/AH=1Bh"BW-TCP"
  6533.  
  6534. Bitfields for PC/TCP send options:
  6535. Bit(s)    Description    (Table 03464)
  6536.  0    signal "URG"ent data
  6537.  3    attempt rerouting on non-stream calls if first attempt fails
  6538.  4    send data with PUSH flag (no override of Nagle)
  6539.  5    fail rather than truncating datagram
  6540.  6    fail rather than blocking
  6541.  7    broadcast packet
  6542. --------b-611A-------------------------------
  6543. INT 61 - Atari Portfolio - GET PERIPHERAL ID BYTE
  6544.     AH = 1Ah
  6545. Return: AH = peripheral ID byte
  6546.     AL = 00h if no peripheral installed
  6547. Desc:    get the ID code for the current terminating peripheral
  6548. SeeAlso: AH=00h"Portfolio",AH=18h"Portfolio",AH=1Bh"Portfolio"
  6549. --------N-611B-------------------------------
  6550. INT 61 - PC/TCP kernel v2.05+ - "net_read" - READ FROM THE NETWORK
  6551.     AH = 1Bh
  6552.     BX = network descriptor
  6553.     CX = maximum number of bytes to read
  6554.     DX = receive options (see #03465)
  6555.     DS:SI -> buffer for data
  6556.     ES:DI -> "addr" structure (see #03462) for remote from which to read
  6557.         0000h:0000h for any
  6558. Return: CF clear if successful
  6559.         AX = number of bytes actually read
  6560.         DX = ???
  6561.     CF set on error
  6562.         AX = error code (see #03319 at INT 61"FTP Software")
  6563. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=1Ah,INT 61/AH=1Dh
  6564.  
  6565. Bitfields for PC/TCP receive options:
  6566. Bit(s)    Description    (Table 03465)
  6567.  1    do not remove data from queue, just copy it
  6568.  2    do not copy data, just remove it from queue
  6569.  5    fail if datagram would be truncated
  6570.  6    do not block, return error if no data available
  6571. Note:    special case for UDP: if both 1 and 2 set, return number of datagrams
  6572. --------b-611B-------------------------------
  6573. INT 61 - Atari Portfolio - SET PERIPHERAL ID BYTE
  6574.     AH = 1Bh
  6575.     AL = which peripheral to set
  6576.         00h serial
  6577.         01h parallel
  6578.     DL = peripheral ID
  6579. Return: nothing
  6580. Desc:    specify that a peripheral is compatible with the BIOS serial or
  6581.       parallel services
  6582. SeeAlso: AH=1Ah"Portfolio",AH=1Ch"Portfolio"
  6583. --------N-611C-------------------------------
  6584. INT 61 - PC/TCP kernel v2.05+ - "net_writeto" - WRITE A DATAGRAM
  6585.     AH = 1Ch
  6586.     BX = network descriptor
  6587.     CX = number of bytes to transmit (0000h allowed)
  6588.     DX = send options (see #03464)
  6589.     DS:SI -> data to be written
  6590.     ES:DI -> "addr" structure (see #03462)
  6591. Return: CF clear if successful
  6592.         AX = number of bytes actually written
  6593.         DX = ???
  6594.     CF set on error
  6595.         AX = error code (see #03319 at INT 61"FTP Software")
  6596. Note:    this function differs from AH=1Ah in that the address and socket
  6597.       numbers can be overridden
  6598. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=1Ah,INT 61/AH=1Dh
  6599. SeeAlso: INT 63/AH=21h"BW-TCP"
  6600. --------b-611C-------------------------------
  6601. INT 61 - Atari Portfolio - PRESET/GET PERIPHERAL DATA
  6602.     AH = 1Ch
  6603.     AL = function
  6604.         00h preset data values
  6605.         BL = data value
  6606.         DX = I/O address
  6607.         01h get data values
  6608.     BH = table entry number (04h-09h)
  6609. Return: if function 01h
  6610.         BL = data value
  6611.         DX = I/O address
  6612. Desc:    preset peripheral I/O data in a table mapping I/O addresses to data
  6613.       values; function 00h additionally outputs the data value to the
  6614.       I/O port
  6615. SeeAlso: AH=1Ah"Portfolio",AH=1Bh"Portfolio",AH=1Eh"Portfolio"
  6616. --------N-611D-------------------------------
  6617. INT 61 - PC/TCP kernel v2.05+ - "net_readfrom" - READ A DATAGRAM
  6618.     AH = 1Dh
  6619.     BX = network descriptor
  6620.     CX = maximum number of bytes to read
  6621.     DX = receive options (see #03464)
  6622.     DS:SI -> buffer for received data
  6623.     ES:DI -> 9-byte buffer containing "addr" structure (see #03462)
  6624. Return: CF clear if successful
  6625.         AX = number of bytes read
  6626.         DX = ???
  6627.     CF set on error
  6628.         AX = error code (see #03319 at INT 61"FTP Software")
  6629. Notes:    this function can read from any host or a designated host depending
  6630.       on settings in the "addr" structure
  6631.     only for use with datagram or Raw descriptors
  6632. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=1Bh,INT 61/AH=1Ch
  6633. --------N-611E-------------------------------
  6634. INT 61 - PC/TCP kernel v2.05+ - "net_flush" - FLUSH PENDING DATA
  6635.     AH = 1Eh
  6636.     BX = network descriptor
  6637. Return: CF clear if successful
  6638.     CF set on error
  6639.         AX = error code (see #03319 at INT 61"FTP Software")
  6640. Range:    INT 20 to INT E0, selected by configuration
  6641. Notes:    bufferred data is transmitted immediately, overriding Nagle's algorithm
  6642.       if necessary
  6643.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  6644. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"
  6645. --------b-611E-------------------------------
  6646. INT 61 - Atari Portfolio - GET/SET CLOCK TICK SPEED
  6647.     AH = 1Eh
  6648.     AL = function
  6649.         00h get speed
  6650.         01h set speed
  6651.         BX = clock tick speed
  6652.             0000h tick every 128 seconds
  6653.             0001h tick every second
  6654. Return: if function 00h
  6655.         BX = clock tick speed
  6656. Note:    the faster tick speed also uses more power
  6657. SeeAlso: AH=00h"Portfolio",AH=1Ch"Portfolio",AH=1Fh"Portfolio"
  6658. --------N-611F-------------------------------
  6659. INT 61 - PC/TCP kernel v2.05+ - "net_asynch" - SET UP ASYNCHRONOUS CALL-BACK
  6660.     AH = 1Fh
  6661.     BX = network descriptor
  6662.     CX = event type (see #03466)
  6663.     DS:SI -> event handler routine (see #03467)
  6664.     ES:DI = 32-bit hint passed to handler
  6665. Return: CF clear if successful
  6666.         DS:DX -> previous handler
  6667.     CF set on error
  6668.         AX = error code (see #03319 at INT 61"FTP Software")
  6669. Note:    ICMP messages do not trigger events on stream connections
  6670. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"
  6671.  
  6672. (Table 03466)
  6673. Values for PC/TCP event type:
  6674.  00h    alarm
  6675.  01h    open (successfully opened stream connection)
  6676.  02h    receive (data available)
  6677.  03h    transmit (ACK received on stream connection)
  6678.  04h    transmit flush???
  6679.  05h    foreign close (remote host closed data connection)
  6680.  06h    close (local host closed connection and protocol is complete)
  6681.  07h    error (error code passed to handler as arg)
  6682.  
  6683. (Table 03467)
  6684. Values PC/TCP user event handler is called with:
  6685.     BX = network descriptor
  6686.     CX = event type (see #03466)
  6687.     DS:DX -> arg
  6688.     ES:DI = 32-bit hint value
  6689.     STACK:    small stack, possibly the DOS stack
  6690. --------b-611F-------------------------------
  6691. INT 61 - Atari Portfolio - GET KEY/NMI-INVOKED SCREEN REFRESH
  6692.     AH = 1Fh
  6693.     AL = function
  6694.         00h get state
  6695.         01h set state
  6696.         DH = new refresh-on-NMI state
  6697.             (00h disabled, 01h enabled, bit 7 set = don't change)
  6698.         DL = new refresh-on-key state
  6699. Return: DH,DL = current/old states
  6700. SeeAlso: AH=00h"Portfolio",AH=1Eh"Portfolio",AH=20h"Portfolio"
  6701. --------N-6120-------------------------------
  6702. INT 61 - PC/TCP kernel v2.05+ - "set_option" - SET AN OPTION ON A DESCRIPTOR
  6703.     AH = 20h
  6704.     BX = network descriptor
  6705.     CX = length of buffer (usually 04h)
  6706.     DS:DX -> buffer containing option
  6707.     SI = (ignored by v2.2-)
  6708.     DI = option to set (see #03468)
  6709. Return: CF clear if successful
  6710.     CF set on error
  6711.         AX = error code (see #03319 at INT 61"FTP Software")
  6712. Notes:    Beame&Whiteside's BWPCTCP shim only supports options 01h and 0Bh; all
  6713.       others return CF clear
  6714.     v2.11 reportedly stores the actual 32-bit value of an option in DS:DX
  6715.       rather than using a buffer in memory
  6716. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=21h
  6717.  
  6718. (Table 03468)
  6719. Values for PC/TCP option to get or set:
  6720.  01h    set non-blocking mode if non-zero
  6721.  02h    timeout of call in milliseconds
  6722.  03h    user-defined 4-byte magic cookie (not used by kernel)
  6723.  04h    TCP window or UDP buffer count (WORD, unsigned)
  6724.  06h    do TCP keep-alives if non-zero
  6725.  09h    (v2.1+) set IP precedence
  6726.  0Ah    (v2.1+) set IP type of service
  6727.  0Bh    use a privileged port if port = 0
  6728.  0Ch    turn off TCP PUSH bit and don't flush buffer every write (see AH=1Ah)
  6729. Note:    use "C" true or false values for boolean options
  6730. --------b-6120-------------------------------
  6731. INT 61 - Atari Portfolio - GET/SET INT 09 REVECTORING
  6732.     AH = 20h
  6733.     AL = function
  6734.         00h get INT 09 revectoring state
  6735.         01h set state
  6736.         DL = new state (00h disable, 01h enable)
  6737. Return: if function 00h
  6738.         DL = new state (00h disabled, 01h enabled)
  6739. Desc:    specify whether INT 09 is automatically revectored to the BIOS,
  6740.       preventing applications from using their own INT 09 handler on the
  6741.       incompatible keyboard hardware
  6742. SeeAlso: AH=1Eh"Portfolio",AH=1Fh"Portfolio",AH=24h"Portfolio"
  6743. --------N-6121-------------------------------
  6744. INT 61 - PC/TCP kernel v2.05+ - "get_option" - GET OPTIONS APPLIED TO NET DESCR
  6745.     AH = 21h
  6746.     BX = network descriptor
  6747.     CX = length of buffer
  6748.     DS:DX -> buffer for return values
  6749.     SI = 0004h (ignored by v2.2-)
  6750.     DI = option (see #03468)
  6751. Return: CF clear if successful
  6752.         DS:DX -> value (usually 32 bits) returned by selected option
  6753.     CF set on error
  6754.         AX = error code (see #03319 at INT 61"FTP Software")
  6755. Notes:    this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  6756.     v2.11 reportedly stores the actual 32-bit value of an option in DS:DX
  6757.       rather than using a buffer in memory
  6758. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=20h
  6759. --------N-6122-------------------------------
  6760. INT 61 u - PC/TCP kernel v2.05+ - "net_getdesc" - ALLOCATE NETWORK DESCRIPTOR
  6761.     AH = 22h
  6762. Return: CF clear if successful
  6763.         AX = network descriptor
  6764.     CF set on error
  6765.         AX = error code (see #03319 at INT 61"FTP Software")
  6766. Note:    the descriptor will be an integer in the range 00h-1Fh, and a DOS call
  6767.       is made to allocate this as a file descriptor.  Hence a number may
  6768.       not refer to a PC/TCP network descriptor and a DOS file handle
  6769.       simultaneously.
  6770. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=13h,INT 61/AH=29h
  6771. --------N-6123-------------------------------
  6772. INT 61 - PC/TCP kernel v2.05+ - "net_listen" - LISTEN FOR INCOMING CONNECTIONS
  6773.     AH = 23h
  6774.     BX = network descriptor or FFFFh to allocate descriptor
  6775.     DX = type of service
  6776.     DS:SI -> "addr" structure (see #03462)
  6777. Return: CF clear if successful
  6778.         AX = network descriptor
  6779.     CF set on error
  6780.         AX = error code (see #03319 at INT 61"FTP Software")
  6781. Notes:    type of service and "addr" structure are as for AH=13h
  6782.     any of the address structure can be zero; normally local socket number
  6783.       is filled in prior to call
  6784. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=13h
  6785. SeeAlso: INT 63/AH=12h"BW-TCP"
  6786. --------N-6124-------------------------------
  6787. INT 61 - PC/TCP kernel v2.05+ - "net_abortall" - RESET ALL NETWORK CONNECTIONS
  6788.     AH = 24h
  6789. Return: always successful
  6790. Note:    performs "net_abort" (AH=19h) on all open non-global descriptors
  6791. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=19h
  6792. --------b-6124-------------------------------
  6793. INT 61 - Atari Portfolio - GET/SET ROM/CCM SPACE STATE
  6794.     AH = 24h
  6795.     AL = function
  6796.         00h get state
  6797.         01h set state
  6798.         DL = new ROM state (see #03469)
  6799.         DH = new CCM state (see #03470)
  6800. Return: CF clear if successful
  6801.         DL = current/old ROM state
  6802.         DH = current/old CCM state
  6803.     CF set on error (invalid option or other error)
  6804. Desc:    control whether memory cards or an extension ROM are visible in the
  6805.       range 000C0000h to 000DFFFFh
  6806. SeeAlso: AH=00h"Portfolio",AH=20h"Portfolio",AH=26h"Portfolio"
  6807.  
  6808. (Table 03469)
  6809. Values for Atari Portfolio ROM space state:
  6810.  00h    normal application ROM
  6811.  01h    CCM drive A:
  6812.  02h    CCM drive B:
  6813.  03h    expansion ROM
  6814. SeeAlso: #03470
  6815.  
  6816. (Table 03470)
  6817. Values for Atari Portfolio CCM space state:
  6818.  00h    CCM drives disabled
  6819.  01h    CCM drive A: permanently enabled
  6820.  02h    CCM drive B: permanently enabled
  6821. SeeAlso: #03469
  6822. --------N-6125-------------------------------
  6823. INT 61 - PC/TCP kernel v2.05+ - "ad_res_name" - GET HOST NAME GIVEN ADDRESS
  6824.     AH = 25h
  6825.     DX,BX = IP address in network order
  6826.     CX = length of buffer for name
  6827.     DS:SI -> buffer for host name
  6828. Return: CF clear if successful
  6829.        buffer filled with ASCIZ host name
  6830.     CF set on error
  6831.         AX = error code (see #03319 at INT 61"FTP Software")
  6832. Note:    this function will use the host table and or DNS to resolve the
  6833.       address, depending on kernel configuration.  Use this call for the
  6834.       normal gethostbyaddr function.
  6835. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=26h,INT 61/AH=27h
  6836. --------N-6126-------------------------------
  6837. INT 61 - PC/TCP kernel v2.05+ - "ad_htable" - GET HOST NAME FROM LOCAL TABLE
  6838.     AH = 26h
  6839.     DX,BX = IP address in network order
  6840.     CX = length of buffer
  6841.     DS:SI -> buffer for host name
  6842. Return: CF clear if successful
  6843.         buffer filled with ASCIZ host name
  6844.     CF set on error
  6845.         AX = error code (see #03319 at INT 61"FTP Software")
  6846. Notes:    normally one would use AH=25h instead of this function
  6847.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  6848. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=25h,INT 61/AH=27h
  6849. --------b-6126-------------------------------
  6850. INT 61 - Atari Portfolio - GET/SET POWER CONTROL
  6851.     AH = 26h
  6852.     AL = function
  6853.         00h get state
  6854.         01h set state
  6855.         DL = new state
  6856.             00h normal power-down on low battery
  6857.             01h no power-down, but display warning
  6858.             02h no power-down, no warning on low battery
  6859. Return: AL = current/old state
  6860. SeeAlso: AH=00h"Portfolio",AH=24h"Portfolio",AH=28h"Portfolio"
  6861. --------N-6127-------------------------------
  6862. INT 61 - PC/TCP kernel v2.05+ - "ad_domain" - GET HOST NAME FROM DNS
  6863.     AH = 27h
  6864.     DX,BX = IP address in network order
  6865.     CX = length of buffer
  6866.     DS:SI -> buffer for host name
  6867. Return: CF clear if successful
  6868.         buffer filled with ASCIZ host name
  6869.     CF set on error
  6870.         AX = error code (see #03319 at INT 61"FTP Software")
  6871. Note:    normally one would use AH=25h instead of this function
  6872. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=25h,INT 61/AH=26h
  6873. --------N-6128-------------------------------
  6874. INT 61 - PC/TCP kernel v2.05+ - "net_swap" - EXCHANGE TWO NETWORK DESCRIPTORS
  6875.     AH = 28h
  6876.     BX = network descriptor 1
  6877.     CX = network descriptor 2
  6878. Return: CF clear if successful
  6879.     CF set on error
  6880.         AX = error code (see #03319 at INT 61"FTP Software")
  6881. Note:    the two descriptors will exchange places; both must be local or both
  6882.       global
  6883. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"
  6884. --------b-6128-------------------------------
  6885. INT 61 - Atari Portfolio - GET/SET TEXT/KEYBOARD LANGUAGE
  6886.     AH = 28h
  6887.     AL = function
  6888.         00h get languages
  6889.         01h set languages
  6890.         DH = new text language (set bit 7 to leave unchanged)
  6891.         DL = new keyboard language (set bit 7 to leave unchanged)
  6892.         03h get language table pointers
  6893. Return: if function 00h or 01h:
  6894.         DH = current/old text language
  6895.         DL = current/old keyboard language
  6896.     if function 03h
  6897.         ES:CX -> keyboard table (see #03471)
  6898.         ES:DX -> language table (see #03471)
  6899. SeeAlso: AH=24h"Portfolio",AH=26h"Portfolio",AH=2Ch"Portfolio"
  6900.  
  6901. Format of Atari Portfolio language table:
  6902. Offset    Size    Description    (Table 03471)
  6903.  00h    BYTE    number of languages supported
  6904.  01h  N BYTEs    supported languages
  6905.         00h English
  6906.         01h French
  6907.         02h German
  6908.         03h Spanish
  6909.         04h Italian
  6910.         05h Swedish
  6911.         06h Danish
  6912. --------N-6129-------------------------------
  6913. INT 61 - PC/TCP kernel v2.05+ - "net_getglobdesc" - ALLOCATE GLOBAL DESCRIPTOR
  6914.     AH = 29h
  6915. Return: CF clear if successful
  6916.         AX = network descriptor
  6917.     CF set on error
  6918.         AX = error code (see #03319 at INT 61"FTP Software")
  6919. Note:    use this function rather than AH=22h to avoid a DOS call by the PC/TCP
  6920.       kernel; the returned descriptor will be >= 40h and cannot be used
  6921.       with "net_select" (AH=0Eh)
  6922. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=07h"PC/TCP"
  6923. SeeAlso: INT 61/AH=22h
  6924. --------N-612A-------------------------------
  6925. INT 61 - PC/TCP kernel v2.05+ - GET CONFIGURATION INFORMATION
  6926.     AH = 2Ah
  6927.     DS:SI -> 26-byte buffer for configuration information (see #03472)
  6928. Return: CF clear
  6929.     AX = 0000h
  6930.     buffer filled
  6931. Notes:    size of buffer may vary with kernel version; 26 bytes is the size for
  6932.       versions 2.05 through 2.2
  6933.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  6934. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"
  6935.  
  6936. Format of PC/TCP configuration information:
  6937. Offset    Size    Description    (Table 03472)
  6938.  00h    BYTE    maximum TCP connections available
  6939.  01h    BYTE    maximum UDP connections available
  6940.  02h    BYTE    maximum IP connections available
  6941.  03h    BYTE    maximum Raw Net connections available
  6942.  04h    BYTE    number of TCP connections currently in use
  6943.  05h    BYTE    number of UDP connections currently in use
  6944.  06h    BYTE    number of IP connections currently in use
  6945.  07h    BYTE    number of Raw Net connections currently in use
  6946.  08h    WORD    number of local network descriptors active
  6947.  0Ah    WORD    number of global network descriptors active
  6948.  0Ch    BYTE    maximum header size on network
  6949.  0Dh    BYTE    maximum trailer size on network
  6950.  0Eh    WORD    size of large packet buffer
  6951.  10h    WORD    number of network interfaces attached
  6952.  12h    DWORD    milliseconds since kernel started
  6953.  16h    DWORD    IP broadcast address
  6954. --------N-612B-------------------------------
  6955. INT 61 - PC/TCP kernel v2.02+ - "net_alarm" - SET TIMED ASYNCHRONOUS EVENT
  6956.     AH = 2Bh
  6957.     BX = network descriptor
  6958.     CX,DX = time before alarm in milliseconds
  6959.     DS:SI -> handler which will receive call (see #03467 at INT 61/AH=1Fh)
  6960.     ES:DI = 32-bit cookie passed to handler
  6961. Return: CF clear if successful
  6962.     CF set on error
  6963.         AX = error code (see #03319 at INT 61"FTP Software")
  6964. Notes:    this function will cause a NET_AS_ALARM to be generated; it is intended
  6965.       for TSRs, etc. to regain control periodically
  6966.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  6967. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"
  6968. --------b-612C-------------------------------
  6969. INT 61 - Atari Portfolio - GET VERSION
  6970.     AH = 2Ch
  6971. Return: DS:BX -> BIOS version string ('$'-terminated)
  6972. SeeAlso: AH=28h"Portfolio",AH=2Dh"Portfolio"
  6973. --------b-612D-------------------------------
  6974. INT 61 - Atari Portfolio - TURN SYSTEM OFF
  6975.     AH = 2Dh
  6976. Return: nothing
  6977. SeeAlso: AH=00h"Portfolio",AH=2Ch"Portfolio",AH=2Eh"Portfolio"
  6978. --------b-612E-------------------------------
  6979. INT 61 - Atari Portfolio - ENABLE/DISABLE SYSTEM STATUS LINE
  6980.     AH = 2Eh
  6981.     AL = new state
  6982.         00h disabled
  6983.         01h enabled
  6984.         DH,DL = row,column at which to display
  6985. Return: nothing
  6986. SeeAlso: AH=00h"Portfolio",AH=2Dh"Portfolio",AH=30h"Portfolio"
  6987. --------N-6130-------------------------------
  6988. INT 61 - PC/TCP kernel v2.05+ - "icmp_ping" - SEND ICMP ECHO REQUEST (PING)
  6989.     AH = 30h
  6990.     BX,DX = IP address of host
  6991.     CX = length of data to send
  6992. Return: CF clear if successful (i.e. reply received)
  6993.     CF set on error
  6994.         AX = error code (see #03319 at INT 61"FTP Software")
  6995. Note:    this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  6996. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"
  6997. --------b-6130-------------------------------
  6998. INT 61 - Atari Portfolio - FILE TRANSFER SERVICES
  6999.     AH = 30h
  7000.     AL = function
  7001.         00h transmit block
  7002.         CX = number of bytes to send
  7003.         01h receive block
  7004.         CX = buffer size
  7005.         02h open ports
  7006.         03h close ports
  7007.         04h wait 500ms
  7008.     DS:DX -> start of data buffer
  7009. Return: DL = status
  7010.         00h successful
  7011.         01h buffer too small
  7012.         02h transmission timeout
  7013.         03h checksum failure
  7014.         04h invalid subfunction
  7015.         05h peripheral not installed
  7016.     if function 01h:
  7017.         CX = number of bytes received
  7018. SeeAlso: AH=00h"Portfolio",AH=2Eh"Portfolio"
  7019. --------N-61---------------------------------
  7020. INT 61 u - PC/TCP kernel v2.05 - NOP for SLIP kernel
  7021.     AH = function
  7022.         31h "net_add_route"
  7023.         32h "net_del_route"
  7024.         33h "net_dump_routes"
  7025. Notes:    these functions are described as "unused" in the v2.2 documentation
  7026.     router configuration can be altered using INT 61/AH=01h
  7027.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  7028. --------N-6132-------------------------------
  7029. INT 61 U - PC/TCP kernel v2.3 - GET ???
  7030.     AH = 32h
  7031. Return: AX = ???
  7032. Note:    this function is fully re-entrant, and may be called even when another
  7033.       PC/TCP kernel call is already in progress
  7034. --------N-6134-------------------------------
  7035. INT 61 U - PC/TCP kernel v2.1+ - "icmp_destun" - ???
  7036.     AH = 34h
  7037.     ???
  7038. Return: ???
  7039. Notes:    this function is described as "reserved" in the v2.2 documentation
  7040.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  7041. --------N-6150-------------------------------
  7042. INT 61 - PC/TCP kernel v2.05+ - "nm_prs_addr" - TRANSLATE NUMERICAL IP ADDRESS
  7043.     AH = 50h
  7044.     DS:DX -> ASCIZ IP address as "dotted quad" (max 127 chars)
  7045. Return: CF clear if successful
  7046.         DX:AX -> IP address
  7047.     CF set on error
  7048.         AX = error code (see #03319 at INT 61"FTP Software")
  7049. Range:    INT 20 to INT E0, selected by configuration
  7050. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=54h
  7051. --------N-6151-------------------------------
  7052. INT 61 - PC/TCP kernel v2.05+ - "nm_htable" - RESOLVE NAME USING HOST TABLE
  7053.     AH = 51h
  7054.     CX = size of destination buffer
  7055.     DS:DX -> ASCIZ host name (max 127 chars)
  7056.     ES:DI -> destination buffer or 0000h:0000h
  7057. Return: CF clear if successful
  7058.         DX:AX -> IP address of host
  7059.         destination buffer filled with canonical host name
  7060.     CF set on error
  7061.         AX = error code (see #03319 at INT 61"FTP Software")
  7062. Note:    this function calls DOS, and can fail if the DOS call fails
  7063. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=54h
  7064. --------N-6152-------------------------------
  7065. INT 61 - PC/TCP kernel v2.05+ - "nm_domain" - RESOLVE NAME USING DNS
  7066.     AH = 52h
  7067.     CX = size of destination buffer
  7068.     DS:DX -> ASCIZ host name (max 127 chars)
  7069.     ES:DI -> destination buffer or 0000h:0000h
  7070. Return: CF clear if successful
  7071.         DX:AX -> IP address of host
  7072.         destination buffer filled with canonical host name
  7073.     CF set on error
  7074.         AX = error code (see #03319 at INT 61"FTP Software")
  7075. Note:    this function will poll all configured domain name servers if necessary
  7076. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=54h
  7077. --------N-6153-------------------------------
  7078. INT 61 - PC/TCP kernel v2.05- - "nm_ien116" - RESOLVE HOST NAME USING IEN116
  7079.     AH = 53h
  7080.     DS:DX -> ASCIZ name to be resolved (max 127 chars)
  7081. Return: CF clear if successful
  7082.         DX:AX -> IP address of host
  7083.     CF set on error
  7084.         AX = error code (see #03319 at INT 61"FTP Software")
  7085. Range:    INT 20 to INT E0, selected by configuration
  7086. Note:    this function is not supported by v2.10+
  7087. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=54h
  7088. --------N-6154-------------------------------
  7089. INT 61 - PC/TCP kernel v2.05+ - "nm_res_name" - RESOLVE HOST NAME
  7090.     AH = 54h
  7091.     CX = size of destination buffer
  7092.     DS:DX -> ASCIZ host name (max 127 chars)
  7093.     ES:DI -> destination buffer or 0000h:0000h
  7094. Return: CF clear if successful
  7095.         DX:AX -> IP address of host
  7096.         destination buffer filled with canonical host name
  7097.     CF set on error
  7098.         AX = error code (see #03319 at INT 61"FTP Software")
  7099. Note:    this function uses all configured methods in turn to resolve the
  7100.       name (numerical, then host table, then DNS, then IEN116)
  7101. BUG:    the SLIP kernel for v2.05 bounds-checks the wrong register, so values
  7102.       greater than 54h in AH may crash the system.    Other kernels may have
  7103.       this bug as well; it has been fixed in the v2.2 SLIPDRV kernel.
  7104. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=50h,INT 61/AH=51h
  7105. SeeAlso: INT 61/AH=52h,INT 61/AH=53h
  7106. --------N-6155-------------------------------
  7107. INT 61 U - PC/TCP kernel v2.3 - ???
  7108.     AH = 55h
  7109.     ???
  7110. Return: ???
  7111. SeeAlso: INT 61"FTP Software"
  7112. --------N-6156-------------------------------
  7113. INT 61 U - PC/TCP kernel v2.3 - ???
  7114.     AH = 56h
  7115.     ???
  7116. Return: ???
  7117. SeeAlso: INT 61"FTP Software"
  7118. --------N-6157-------------------------------
  7119. INT 61 U - PC/TCP kernel v2.3 - ???
  7120.     AH = 57h
  7121.     ???
  7122. Return: ???
  7123. SeeAlso: INT 61"FTP Software"
  7124. --------N-6158-------------------------------
  7125. INT 61 U - PC/TCP kernel v2.3 - ???
  7126.     AH = 58h
  7127.     ???
  7128. Return: ???
  7129. SeeAlso: INT 61"FTP Software"
  7130. --------N-6159-------------------------------
  7131. INT 61 U - PC/TCP kernel v2.3 - ???
  7132.     AH = 59h
  7133.     ???
  7134. Return: ???
  7135. SeeAlso: INT 61"FTP Software"
  7136. --------N-615A-------------------------------
  7137. INT 61 U - PC/TCP kernel v2.3 - ???
  7138.     AH = 5Ah
  7139.     ???
  7140. Return: ???
  7141. SeeAlso: INT 61"FTP Software"
  7142. --------N-615B-------------------------------
  7143. INT 61 U - PC/TCP kernel v2.3 - ???
  7144.     AH = 5Bh
  7145.     ???
  7146. Return: ???
  7147. SeeAlso: INT 61"FTP Software"
  7148. --------N-615C-------------------------------
  7149. INT 61 U - PC/TCP kernel v2.3 - ???
  7150.     AH = 5Ch
  7151.     ???
  7152. Return: ???
  7153. SeeAlso: INT 61"FTP Software"
  7154. --------N-615D-------------------------------
  7155. INT 61 U - PC/TCP kernel v2.3 - ???
  7156.     AH = 5Dh
  7157.     ???
  7158. Return: ???
  7159. SeeAlso: INT 61"FTP Software"
  7160. --------N-615E-------------------------------
  7161. INT 61 U - PC/TCP kernel v2.3 - ???
  7162.     AH = 5Eh
  7163.     ???
  7164. Return: ???
  7165. SeeAlso: INT 61"FTP Software"
  7166. --------N-615F-------------------------------
  7167. INT 61 U - PC/TCP kernel v2.3 - ???
  7168.     AH = 5Fh
  7169.     ???
  7170. Return: ???
  7171. SeeAlso: INT 61"FTP Software"
  7172. --------!---Section--------------------------
  7173.